Skip to content

Lisää englannin kielen käännökset#503

Open
ernoma wants to merge 6 commits intoGispoCoding:mainfrom
ernoma:translation
Open

Lisää englannin kielen käännökset#503
ernoma wants to merge 6 commits intoGispoCoding:mainfrom
ernoma:translation

Conversation

@ernoma
Copy link

@ernoma ernoma commented Nov 17, 2025

@LKajan @mmalmari Tässä nykyiselle main-haarassa olevalle toteutukselle englannin (en_US - ainakaan omasta QGISstäni ei muuta englantia löydykään) kielen käännökset paria poikkeusta lukuunottamatta ja paria poikkeusta lukuunottamatta QGIS:n lisäosien käännösohjeistusta (https://docs.qgis.org/3.40/en/docs/pyqgis_developer_cookbook/plugins/plugins.html#translating-plugins) noudattaen.

Jostakin syystä plugin.py:n ja parin muun tiedoston tekstit eivät suostuneet QTranslatorin avulla kääntymään, joten käänsin ne manuaalisesti if-else-ehdoilla. Lisäksi parissa tiedostossa, lähinnä code_layers.py ja plan_layers.py, oli tekstejä, joille en uskaltanut tehdä käännöksiä.

Ainakin omissa kokeiluissani toimii hienosti.

Copy link
Contributor

@LKajan LKajan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kiitos tämän tutkimisesta. Kääntämiset on jäänyt muiden tehtävien jalkoihin.
Lisäsin kommentteja, miten tätä olisi hyvä parantaa.

Ajatus meillä on ollut, että kunhan käännöstoiminnallisuus saadaan toteutettua, niin koodissa tekstit vaihdettaisiin englanniksi, jolloin koko koodipohja olisi englanniksi ja suomenkieliset tekstit tulisivat käännösten kautta.

# self.toolbar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)


def tr(self, message):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tämän voisi poistaa luokalta moduuli-tasolle, jolloin sen voisi importoida siellä missä tarvitaan. Tällöin metodia ei tarvitse passailla parametrina ympäriinsä.

Comment on lines 52 to 57
if self.locale == 'fi':
self.toolbar = iface.addToolBar("ARHO Työkalupalkki")
elif self.locale == 'en_US':
self.toolbar = iface.addToolBar("ARHO Toolbar")
else:
self.toolbar = iface.addToolBar(self.tr("ARHO Työkalupalkki"))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eikö tässäkin voisi käyttää vain tr funktiota ja lukea käännökset ts-fileistä?

@use_wait_cursor
@status_message("Tallennetaan kaava-asiaa ...")
def save_plan_matter(plan_matter: PlanMatter) -> str | None:
def save_plan_matter(plan_matter: PlanMatter, tr) -> str | None:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tr funktiota ei ole syytä antaa metodeille parametrina. Olisi selkeämpi, jos sen vaan importoisi. Sama koskee siis kaikkia vastaavia tapauksia.

class ImportFeaturesForm(QDialog, FormClass): # type: ignore
def __init__(
self,
tr,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kaikilla luokilla, jotka periytyvät QObjectsta on valmiiksi luokkametodina tr, jota tulisi käyttää aina kuin mahdollista. QApplication.translatea tulisi käyttää vain paikoissa, jotka eivät periydy QObjektista.

Comment on lines 129 to 131
name_text = self.tr("Nimi")
type_text = self.tr("Tyyppi")
description_text = self.tr("Kuvaus")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eikö tämä riittäisi? Onko tässä syytä manuaalisesti hallita käännöksiä? Eli onko if-elselle jokin tarve?

@ernoma
Copy link
Author

ernoma commented Nov 28, 2025

@LKajan Kiitos kommenteista! Ensi viikoksi tavoitteena minulla tehdä päivitystä.

@ernoma
Copy link
Author

ernoma commented Nov 29, 2025

@LKajan Nyt olen nähdäkseni tehnyt kaikki muutokset, joita toivoit, paitsi englanninkielisten tekstien vaihtamista koodiin eli:

  • käytössä on joko moduuli-tason tr-metodi tai QObject-luokan olion tr-metodi riippuen tilanteesta
  • tr-funktiota ei passailla parametrina
  • if-elif-else-rakenteista on luovuttu

Lisäksi, toiminnallisuuksien, joita ehditte toteuttaa tässä välissä main-haaraan, teksteille on lisätty englanninkieliset käännökset. @mmalmari - sinuakin voi kiinnostaa

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants