Jump to content

Frameworks/Epics/KF5.0 Release Preparation/l10n: Difference between revisions

From KDE Community Wiki
Aurélien (talk | contribs)
Aurélien (talk | contribs)
rework page, should be more readable
Line 33: Line 33:


If using tr(), make sure the list of source files include ${ECM_TR_LOADER}.
If using tr(), make sure the list of source files include ${ECM_TR_LOADER}.
== KI18n-based frameworks ==
Framework list:
* kactivities
* kcmutils
* kconfig
* kconfigwidgets
* kde4support
* kdoctools
* kfileaudiopreview
* khtml
* ki18n
* kiconthemes
* kinit
* kio
* kjsembed
* knewstuff
* knotifyconfig
* kparts
* kprintutils
* kpty
* kross
* krunner
* kservice
* ktexteditor
* ktextwidgets
* kunitconversion
* kwallet
* kwindowsystem
* kxmlgui
* plasma-framework


=== Status ===
=== Status ===
==== Done ====
==== Todo ====


{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width:100%;"
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width:100%;"
|- style="background: #ececec; white-space:nowrap;"
|- style="background: #ececec; white-space:nowrap;"
! Status
! Status
! Framework (Translation API)
! Task
! Coordination
! Coordination
{{FeatureDone | attica (-) | }}
{{ FeatureTodo | Add src/Messages.sh script | }}
{{FeatureDone | KI18n (-) | }}
{{ FeatureTodo | Check TRANSLATION_DOMAIN is set | }}
{{FeatureTodo | kactivities (KI18n) | }}
{{ FeatureTodo | Integrate translation compilation code | }}
{{FeatureDone | karchive (-) | }}
{{FeatureTodo | kauth (Qt) | }}
{{FeatureTodo | kbookmarks (Qt) | }}
{{FeatureTodo | kcmutils (KI18n) | }}
{{FeatureTodo | kcodecs (Qt) | }}
{{FeatureTodo | kcompletion (Qt) | }}
{{FeatureTodo | kconfig (KI18n) | }}
{{FeatureTodo | kconfigwidgets (KI18n) | }}
{{FeatureTodo | kcoreaddons (Qt) | }}
{{FeatureTodo | kcrash (Qt) | }}
{{FeatureTodo | kdbusaddons (Qt) | }}
{{FeatureTodo | kde4support (KI18n) | }}
{{FeatureDone | kdeclarative (-) | }}
{{FeatureDone | kded (-) | }}
{{FeatureTodo | kdesignerplugin (Qt) | }}
{{FeatureDone | kdesu (-) | }}
{{FeatureDone | kdewebkit (-) | }}
{{FeatureTodo | kdnssd-framework (Qt) | }}
{{FeatureTodo | kdoctools (KI18n) | }}
{{FeatureDone | kemoticons (-) | }}
{{FeatureDone | kf5umbrella (-) | }}
{{FeatureTodo | kfileaudiopreview (KI18n) | }}
{{FeatureTodo | kglobalaccel (Qt) | }}
{{FeatureDone | kguiaddons (-) | }}
{{FeatureTodo | khtml (KI18n) | }}
{{FeatureTodo | ki18n (KI18n) | }}
{{FeatureTodo | kiconthemes (KI18n) | }}
{{FeatureDone | kidletime (-) | }}
{{FeatureDone | kimageformats (-) | }}
{{FeatureTodo | kinit (KI18n) | }}
{{FeatureTodo | kio (KI18n) | }}
{{FeatureDone | kitemmodels (-) | }}
{{FeatureTodo | kitemviews (Qt) | }}
{{FeatureTodo | kjobwidgets (Qt) | }}
{{FeatureDone | kjs (-) | }}
{{FeatureTodo | kjsembed (KI18n) | }}
{{FeatureDone | kmediaplayer (-) | }}
{{FeatureTodo | knewstuff (KI18n) | }}
{{FeatureTodo | knotifications (Qt) | }}
{{FeatureTodo | knotifyconfig (KI18n) | }}
{{FeatureTodo | kparts (KI18n) | }}
{{FeatureDone | kplotting (-) | }}
{{FeatureTodo | kprintutils (KI18n) | }}
{{FeatureTodo | kpty (KI18n) | }}
{{FeatureTodo | kross (KI18n) | }}
{{FeatureTodo | krunner (KI18n) | }}
{{FeatureTodo | kservice (KI18n) | }}
{{FeatureTodo | ktexteditor (KI18n) | }}
{{FeatureTodo | ktextwidgets (KI18n) | }}
{{FeatureTodo | kunitconversion (KI18n) | }}
{{FeatureTodo | kwallet (KI18n) | }}
{{FeatureTodo | kwidgetsaddons (Qt) | }}
{{FeatureTodo | kwindowsystem (KI18n) | }}
{{FeatureTodo | kxmlgui (KI18n) | }}
{{FeatureTodo | plasma-framework (KI18n) | }}
{{FeatureTodo | solid (Qt) | }}
{{FeatureTodo | sonnet (Qt) | }}
{{FeatureDone | threadweaver (-) | }}
|}
|}


==== Check QObject::tr usage ====
== Qt-based frameworks ==


Test the Messages.sh script, fix any errors it reports.
Framework list:


Errors to ignore:
* kauth
* kbookmarks
* kcodecs
* kcompletion
* kcoreaddons
* kcrash
* kdbusaddons
* kdesignerplugin
* kdnssd
* kglobalaccel
* kitemviews
* kjobwidgets
* knotifications
* kwidgetsaddons
* solid
* sonnet


* "Unsupported encoding Latin1": caused by lupdate not being aware that QCoreApplication::translate() does not accept an encoding parameter anymore.
=== Status ===
* "Ignoring definition of undeclared qualified class": to be further investigated, but I don't think it matters


{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width:100%;"
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width:100%;"
|- style="background: #ececec; white-space:nowrap;"
|- style="background: #ececec; white-space:nowrap;"
! Status
! Status
! Framework (Translation API)
! Task
! Coordination
! Coordination
{{FeatureDone | kauth (Qt) | }}
{{ FeatureDone | Add src/Messages.sh script | }}
{{FeatureDone | kbookmarks (Qt) | }}
{{ FeatureDone | Check QObject::tr is correctly used | }}
{{FeatureDone | kcodecs (Qt) | }}
{{ FeatureTodo | kwidgetsaddons: Check data for KCharSelectData is marked as translatable. See FIXME in the code | }}
{{FeatureDone | kcompletion (Qt) | }}
{{ FeatureTodo | Integrate translation compilation code | }}
{{FeatureDone | kcoreaddons (Qt) | }}
{{FeatureDone | kcrash (Qt) | }}
{{FeatureDone | kdbusaddons (Qt) | }}
{{FeatureDone | kdesignerplugin (Qt) | }}
{{FeatureDone | kdnssd (Qt) | }}
{{FeatureDone | kglobalaccel (Qt) | }}
{{FeatureDone | kitemviews (Qt) | }}
{{FeatureDone | kjobwidgets (Qt) | }}
{{FeatureDone | knotifications (Qt) | }}
{{FeatureInProgress | kwidgetsaddons (Qt) One needs to check data for KCharSelectData is marked as translatable. See FIXME in the code | }}
{{FeatureDone | solid (Qt) | }}
{{FeatureDone | sonnet (Qt) | }}
|}
|}

Revision as of 15:04, 26 March 2014

Preparation

Status Task Coordination
DONE Decide where to place Messages.sh (src by default?)
IN PROGRESS Define the way to extract translations for Qt-based frameworks. Patches under review.
DONE Investigate whether it is possible to have Qt-based frameworks automatically load their transitions
TO DO Check the release scripts to ensure they include the .po or .ts files as well as the matching CMake code to build and install them. <{{{3}}}>

Per framework TODO

For each framework the following needs to be done:

Mark strings translatable

Make sure all strings that need to be translated are either wrapped by i18n*() or tr*() depending on the translation API of choice.

Extract translatable strings

If there is no Messages.sh file in the repository, create a src/Messages.sh file. See http://techbase.kde.org/Development/Tutorials/Localization/i18n_Build_Systems#handling_i18n_in_KDE.27s_subversion_repository for details on how to create and test it.

If there are Messages.sh files, check they are still relevant.

Things to test:

  • Make sure the Messages.sh files extract all the files
  • Make sure the Messages.sh files create catalogs with correct names. Look out for catalogs with '4' suffix, or catalogs whose name would clash with an existing KDE4 library.

Make sure translations are loaded

If using ki18n, make sure it follows http://api.kde.org/frameworks-api/frameworks5-apidocs/ki18n/html/prg_guide.html#link_lib . In short: Check all files with calls to i18n*() define TRANSLATION_DOMAIN before including KLocalizedString.

If using tr(), make sure the list of source files include ${ECM_TR_LOADER}.

KI18n-based frameworks

Framework list:

  • kactivities
  • kcmutils
  • kconfig
  • kconfigwidgets
  • kde4support
  • kdoctools
  • kfileaudiopreview
  • khtml
  • ki18n
  • kiconthemes
  • kinit
  • kio
  • kjsembed
  • knewstuff
  • knotifyconfig
  • kparts
  • kprintutils
  • kpty
  • kross
  • krunner
  • kservice
  • ktexteditor
  • ktextwidgets
  • kunitconversion
  • kwallet
  • kwindowsystem
  • kxmlgui
  • plasma-framework

Status

Done

Todo

Status Task Coordination
TO DO Add src/Messages.sh script <{{{3}}}>
TO DO Check TRANSLATION_DOMAIN is set <{{{3}}}>
TO DO Integrate translation compilation code <{{{3}}}>

Qt-based frameworks

Framework list:

  • kauth
  • kbookmarks
  • kcodecs
  • kcompletion
  • kcoreaddons
  • kcrash
  • kdbusaddons
  • kdesignerplugin
  • kdnssd
  • kglobalaccel
  • kitemviews
  • kjobwidgets
  • knotifications
  • kwidgetsaddons
  • solid
  • sonnet

Status

Status Task Coordination
DONE Add src/Messages.sh script
DONE Check QObject::tr is correctly used
TO DO kwidgetsaddons: Check data for KCharSelectData is marked as translatable. See FIXME in the code <{{{3}}}>
TO DO Integrate translation compilation code <{{{3}}}>