Jump to: navigation, search

I18nTeam/Migration-to-weblate

< I18nTeam
Revision as of 09:20, 28 October 2025 by Damekyung98 (talk | contribs) (Translation Accuracy Metrics)

Migration to weblate

Who's joining the migration project

  • Ian Y. Choi (Manager)
  • Seongsoo Cho
  • Kuemjong Jeong
  • Nayeon Kim
  • Sion Shin
  • Gwangil Kim
  • DaGyeong Kim

Planning a weblate migration schedule

You can find more details about each task below.

  • Define the scope of target test projects
    • All vs. a few projects (e.g., openstack-manuals, nova, i18n, horizon)
  • Make Translation Infrastructure Scripts compatible with Weblate
    • Weblate project creation with settings if the target project is not existing on the platform
      • (If it is not supported, Weblate projects will be created manually)
      • Testing needs to be performed locally, since the scripts are executed on 06:00 UTC daily.
  • ZuuL Integration Test
    • Determine when to test (e.g., Test methodology without waiting at 06:00 UTC?)
    • Integration test with all translation target projects
  • Making tools for extracting statistical data from Weblate


Action Item

Define the scope of target test projects

  • Configure Weblate with the information set in Zanata.
  • User information is not migrated.

Make Translation Infrastructure Scripts compatible with Weblate

Zuul Integration Test

Create and test a ZuuL Job that performs the following tasks

  • Uploading translation files to Weblate when new changes are made to your project
  • Upload translations from Weblate to your project every day at 06 UTC

Making tools for extracting statistical data from Weblate

List of projects and status

Migration Scope

Item Count
Total projects 127
Total versions 12
Total Languages 54
Version

We determined the migration version based on the branches that currently exist in the main services.

Note: Some projects may not have this branch.

Versions to migrate:

  • master
  • stable/2025.2
  • stable/2025.1
  • stable/2024.2
  • stable/2024.1
  • unmaintained/2023.1
  • unmaintained/zed
  • unmaintained/wallaby
  • unmaintained/victoria
  • unmaintained/yoga
  • unmaintained/xena
Languages plurals
Language Code Language Name Plurals
ar Arabic nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;
as Assamese nplurals=2; plural=n > 1;
bg_BG Bulgarian (Bulgaria) nplurals=2; plural=n != 1;
bn_IN Bengali (India) nplurals=2; plural=n > 1;
brx Bodo nplurals=2; plural=n != 1;
ca Catalan nplurals=2; plural=n != 1;
cs Czech nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;
de German nplurals=2; plural=n != 1;
el Greek nplurals=2; plural=n != 1;
en_GB English (United Kingdom) nplurals=2; plural=n != 1;
en_US English (United States) nplurals=2; plural=n != 1;
en_AU English (Australia) nplurals=2; plural=n != 1;
eo Esperanto nplurals=2; plural=n != 1;
es Spanish nplurals=2; plural=n != 1;
es_MX Spanish (Mexico) nplurals=2; plural=n != 1;
fa Persian nplurals=2; plural=n > 1;
fi_FI Finnish (Finland) nplurals=2; plural=n != 1;
fil Filipino nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 || n % 10 == 6 || n % 10 == 9);
fr French nplurals=2; plural=n > 1;
gu Gujarati nplurals=2; plural=n > 1;
he Hebrew nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3));
hi Hindi nplurals=2; plural=n > 1;
hu Hungarian nplurals=2; plural=n != 1;
id Indonesian nplurals=1; plural=0;
it Italian nplurals=2; plural=n != 1;
ja Japanese nplurals=1; plural=0;
ka_GE Georgian (Georgia) nplurals=2; plural=n != 1;
kn Kannada nplurals=2; plural=n > 1;
ko_KR Korean (Korea) nplurals=1; plural=0;
kok Konkani nplurals=2; plural=n != 1;
ks Kashmiri nplurals=2; plural=n != 1;
lo Lao nplurals=1; plural=0;
mai Maithili nplurals=2; plural=n != 1;
mni Manipuri nplurals=2; plural=n != 1;
mr Marathi nplurals=2; plural=n != 1;
ne Nepali nplurals=2; plural=n != 1;
nl_NL Dutch (Netherlands) nplurals=2; plural=n != 1;
pa_IN Punjabi (India) nplurals=2; plural=n > 1;
pl_PL Polish (Poland) nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
pt Portuguese nplurals=2; plural=n > 1;
pt_BR Portuguese (Brazil) nplurals=2; plural=n > 1;
ro Romanian nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;
ru Russian nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
sl_SI Slovenian (Slovenia) nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;
sq Albanian nplurals=2; plural=n != 1;
sr Serbian nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
ta Tamil nplurals=2; plural=n != 1;
te_IN Telugu (India) nplurals=2; plural=n != 1;
th Thai nplurals=1; plural=0;
tr_TR Turkish (Turkey) nplurals=2; plural=n != 1;
ur Urdu nplurals=2; plural=n != 1;
vi_VN Vietnamese (Vietnam) nplurals=1; plural=0;
zh_CN Chinese (China) nplurals=1; plural=0;
zh_TW Chinese (Taiwan) nplurals=1; plural=0;

Translation Accuracy Metrics

Due to inconsistent word count calculations across different translation platforms, we measure accuracy by the number of strings rather than word count.

We evaluate translation accuracy using the following metrics:

  • Source strings
  • Translated strings

Translation Migration Status

For more details about accuracy, please refer to the Launchpad bugs.

Project Progress status Accuracy(%) Launchpad Bug Contributor Comment
cloudkitty-dashboard In Progress 33% https://bugs.launchpad.net/openstack-i18n/+bug/2121053 DaGyeong Kim N/A
designate-dashboard Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119196 N/A N/A
freezer-web-ui Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2124944 N/A N/A
heat-dashboard Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119199 N/A N/A
ironic-ui Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119203 N/A N/A
manila-ui Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119204 N/A N/A
magnum-ui Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119200 N/A N/A
networking-bgpvpn Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119207 N/A N/A
neutron-fwaas-dashboard Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119206 N/A N/A
neutron-vpnaas-dashboard Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119388 N/A N/A
octavia-dashboard Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119197 N/A N/A
trove-dashboard Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119201 N/A N/A
zaqar-ui Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119468 N/A N/A
zun-ui Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2119205 N/A N/A
horizon Not Started N/A https://bugs.launchpad.net/openstack-i18n/+bug/2125039 N/A N/A

Etherpads