-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Grundlagen für I18N #136
base: dev
Are you sure you want to change the base?
Grundlagen für I18N #136
Conversation
This is necessary to allow a package to get its Package instance during its own initialization. To allow distinction of initialized and uninitialized packages, they now have a 'state' property.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ich denke wir sollten in questionpy_common
lieber kein TranslatableString
unterstützen, um das Interface zwischen Worker/Server und Server/LMS leichter verständlich zu halten. Die Worker müssen direkt fertig übersetze Strings zurückgeben.
Finde ich auch erstrebenswert, würde hier aber halt duplizierte Form-Element-Models (In Server/Common mit |
Okay, da gefällt mir die jetzige Variante doch am besten. Dann würde ich |
Fände ich auch besser (und hatte ich zunächst versucht), leider weiß MyPy das aber nicht. Ohne @property
def general_feedback(self) -> str:
# error: Incompatible return value type (got "str | TranslatableString", expected "str") [return-value]
return _("Programmatic translation!") Es spricht allerdings in der Tat nichts dagegen, die Übersetzung in |
get_qpy_environment().packages
liegt. Das ist jetzt der Fall. Uninitialisierte Pakete können stattdessen an dem neuen FeldPackage.state
erkannt werden.languages
nun benötigt und muss mindestens einen Eintrag haben. Das ist sinnvoll, damit wir bei Paketen, die nicht lokalisiert sind, die Sprache kennen. Per Konvention ist der erste (und dann einzige) Eintrag vonlanguages
dann die Sprache, in der die unübersetzten Strings, also die Argumente zugettext
& co., geschrieben sind.TranslatableString
(das NB auch vonstr
erfüllt wird) ist notwendig, weilgettext
auch außerhalb eines Requests (insb. während in der FormModel-Definition) aufgerufen wird.TranslatableString
wird im SDK dann implementiert und übersetzt den String erst, wenn er wirklich gebraucht wird. Ich hatte hier zunächst aufcollections.UserString
gesetzt, das ist aber klobiger und bringt das Problem, dassformat() -> str
ist, also_(...).format(...)
nicht funktioniertIssue: questionpy-org/questionpy-sdk#146
SDK-PR: questionpy-org/questionpy-sdk#154