Conversation
LKajan
left a comment
There was a problem hiding this comment.
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.
arho_feature_template/plugin.py
Outdated
| # self.toolbar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) | ||
|
|
||
|
|
||
| def tr(self, message): |
There was a problem hiding this comment.
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ä.
arho_feature_template/plugin.py
Outdated
| 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")) |
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
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, |
There was a problem hiding this comment.
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.
| name_text = self.tr("Nimi") | ||
| type_text = self.tr("Tyyppi") | ||
| description_text = self.tr("Kuvaus") |
There was a problem hiding this comment.
Eikö tämä riittäisi? Onko tässä syytä manuaalisesti hallita käännöksiä? Eli onko if-elselle jokin tarve?
|
@LKajan Kiitos kommenteista! Ensi viikoksi tavoitteena minulla tehdä päivitystä. |
|
@LKajan Nyt olen nähdäkseni tehnyt kaikki muutokset, joita toivoit, paitsi englanninkielisten tekstien vaihtamista koodiin eli:
Lisäksi, toiminnallisuuksien, joita ehditte toteuttaa tässä välissä main-haaraan, teksteille on lisätty englanninkieliset käännökset. @mmalmari - sinuakin voi kiinnostaa |
@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.