Tutorial MULTI MIUI ROM Translation Developer Guide


Status
Not open for further replies.

MarkHUK

Site Founder
Staff member
Nov 6, 2010
5,251
1,000,000
Hi everyone,

Not sure if iBotPeaches made a post for this yet so i've decided to post one here. Basically as you know we heard that China is wanting to do Multi-language ROMS now which is great news! We have been working with a number of translators from MIUI Netherlands, MIUI Italy and MIUI Poland to create a unified Multi-language ROM.

As a result of this work we re-engineered our build scripting to accomodate not only English but also all the different resources and other data required in other developers translations and tweaks. To get to this point we decided to make the translations work using Git Repositories on BitBucket.org. This means translators can take ownership for their translations and also allow others to help commit improvements or new strings when they are added by MIUI China.

What we would like to do is get all the languages into a central repo so that when MIUI China is ready we can offer them the repository on BitBucket - this will undoubtedly make the work of adding new strings to the weekly and monthly ROM easier.

If you would like to get involved we are looking for translators in the following languages at the moment (and any we've missed out too):

Download the translation developer guide (see below for link) (written and compiled by iBotPeaches for MIUIAndroid.com and MIUI.com)

https://docs.google.com/document/d/1H8DoN6nnbsOGB_fauBiCcpyB4OAIEHjqEiJX322v45Y/edit
 
Great guide.

I'm still not sure about all the steps required to help with the translations.

But i would love to help with the german translation. I've a github account, will i still need a bitbucket account?

Oh and you should really add this to the front-page.
 
  • Like
Reactions: helmz83
Great guide.

I'm still not sure about all the steps required to help with the translations.

But i would love to help with the german translation. I've a github account, will i still need a bitbucket account?

Oh and you should really add this to the front-page.
ideally if you could create a fork on bitbucket for us to pull your XML from that would be great. Let iBotPeaches know the address of the repo.
 
ideally if you could create a fork on bitbucket for us to pull your XML from that would be great. Let iBotPeaches know the address of the repo.
ah ok.

So it should definitely be a bitbucket repo. I've seen a github repo in the docks so i thought github is possible too. (They have such a great app for mac).

Is there someone else (german) willing to help?

I won't look into the translation stuff a bit deeper tomorrow, first i have to finish my final exam in maths tomorrow.

I would love to see miuiandroid roms in german too ;). It's sad miui-germany doesn't want to help you...
 
ah ok.

So it should definitely be a bitbucket repo. I've seen a github repo in the docks so i thought github is possible too. (They have such a great app for mac).

Is there someone else (german) willing to help?

I won't look into the translation stuff a bit deeper tomorrow, first i have to finish my final exam in maths tomorrow.

I would love to see miuiandroid roms in german too ;). It's sad miui-germany doesn't want to help you...
their decision but we dont need them to do this but would prefer them to contribute and get their translations used on a wider set of rom builds.
 
their decision but we dont need them to do this but would prefer them to contribute and get their translations used on a wider set of rom builds.
Yeah you're right.

I will do some research tomorrow.

And i'll also try to find that repo i found a few days ago. it had a few different languages, and perhaps they will contribute, their xml's?

For now. Thanks for the reply
 
You could use github if you want. As long as you maintain the correct structure is all that matters. We just prefer bitbucket because we have some access to the REPOs to fix problems as they appear.

EDIT: I'll see about creating a skeleton public REPO that users can pull to begin translations.
 
Hi Mark,

Nice repo and nice idea :D

I've PM'ed you some time ago because @MyUITeam we have set up a similar repo + a user friendly web interface. You were busy at this time.

BTW, please check:
- our repo: https://github.com/MyUI-Team/MIUIv4
- our web tool: http://translate.myui.fr

The web tool automatically push translation to our git (which can also be forked and commited in the same way as you explain in your guide).

If you wish, we can have a similar structure as your, and take your repo as a remote, then periodicaly pull our repo to your to let you merge. MyUI-MIUIv4 repo has already 24 languages.

Regards,

RolluS
 
Yeah, we just didn't want to use any 3rd party service. We wanted to use pure REPOs and have other translators be in charge of their language.

How do you handle same APKs (like framework-res & camera) that are different for all phones? Is your script compatible with all official Xiaomi ROMs?
 
Yeah, we just didn't want to use any 3rd party service. We wanted to use pure REPOs and have other translators be in charge of their language.

How do you handle same APKs (like framework-res & camera) that are different for all phones? Is your script compatible with all official Xiaomi ROMs?
their service is cool ;). They also have a lots of languages. It would really speed up the whole thing, if you can cooperate. So i'll wait for news about this before i start with the translation.
 
Hello Mark and iBotPeaches
What about the Arabic language. Not place them with a language
I will translate from the beginning. Appeared this week.

You could use github if you want. As long as you maintain the correct structure is all that matters. We just prefer bitbucket because we have some access to the REPOs to fix problems as they appear.

EDIT: I'll see about creating a skeleton public REPO that users can pull to begin translations.
Invite me or wait skeleton public REPO for start translations
 
Hello Mark and iBotPeaches
What about the Arabic language. Not place them with a language
I will translate from the beginning. Appeared this week.


Invite me or wait skeleton public REPO for start translations

I await contacts to my username @ gmail (dot) com

I will send information there, and repo if needed. Off to bed. peace.
 
  • Like
Reactions: silent_4
Yeah, we just didn't want to use any 3rd party service. We wanted to use pure REPOs and have other translators be in charge of their language.

How do you handle same APKs (like framework-res & camera) that are different for all phones? Is your script compatible with all official Xiaomi ROMs?

We will never have a pure repo containing only one language as git (or svn) makes maintenance really easy, when we know how to use it (merge, diff, etc..) so we have a unified repo with a common tool.
By the way we have one pure repo containing all the languages.
For device specific things, as we are only targeted at the Samsung Galaxy S familly, each lead developer know what to take in the repo.

You know that having repo for translation isn't easy, you (miuiandroid) have some zombie repos that didn't get updated for month, and which are going to die.
We've understood that users are just lazy as us, and giving a frontend for translations makes contribution more reliables.

Why having dozens languages owners when everyone can contribute and some guys handle the whole repo? We have 24 languages now, with little missing strings, then we can be autonomous. We are only 2 people maintaining this repo, and the web frontend with anonymous (or not) users pushing the strings.
I said we can be autonomous, or can have a unified remote repo with you, without any change in your We've already had about multiples repos (in fact, a repo with one branche of each languages), but it was not really efficient. We've also already had multiples users managing multiples repos, but it was also not really efficient.

If you change your statement, then you could pull our repo (made by multiple users for multiple languages), and have more accurate translations.

Hope you will reply to this, have a nice time,

RolluS
 
We will never have a pure repo containing only one language as git (or svn) makes maintenance really easy, when we know how to use it (merge, diff, etc..) so we have a unified repo with a common tool.
By the way we have one pure repo containing all the languages.
For device specific things, as we are only targeted at the Samsung Galaxy S familly, each lead developer know what to take in the repo.

You know that having repo for translation isn't easy, you (miuiandroid) have some zombie repos that didn't get updated for month, and which are going to die.
We've understood that users are just lazy as us, and giving a frontend for translations makes contribution more reliables.

Why having dozens languages owners when everyone can contribute and some guys handle the whole repo? We have 24 languages now, with little missing strings, then we can be autonomous. We are only 2 people maintaining this repo, and the web frontend with anonymous (or not) users pushing the strings.
I said we can be autonomous, or can have a unified remote repo with you, without any change in your We've already had about multiples repos (in fact, a repo with one branche of each languages), but it was not really efficient. We've also already had multiples users managing multiples repos, but it was also not really efficient.

If you change your statement, then you could pull our repo (made by multiple users for multiple languages), and have more accurate translations.

Hope you will reply to this, have a nice time,

RolluS

I looked into your script setup. Lots of questions still remain unanswered.

  1. Cit.apk is an MI ONE only apk. I don't see it there. This is because you said you have support for SGS family only. That doesn't help us. Our REPOs build all official Xiaomi ROMs.
  2. What stops one from overriding or inserting wrong strings? Is there like x votes needed to approve a string?
  3. I saw there was /widget support and what not, but I didn't see anyone use it.
  4. What about drawables-xx? raw-xx? xml-xx? I didn't see those have any ability to be translated.
  5. I opened a random MIUI v4 APK (LBESEC). It had 3 languages -_- (I thought you said you had 24). So then I opened ThemeManager.apk. It had about 12, so thats better. Still not 24 though.
  6. Lots of APKs are different among devices. framework-res has differences in the Sony Ericson family, along with Browser.apk being different on the MI ONE. How do you support same APKs different structure?
Its a great idea, but it just can't be pulled off without missing tons of details. All our of translation REPOs have between 1-5 people on them. There updated frequently and have support for everything beyond values folders. This method allows the common user to help, but doesn't aid much in the actual translation. I'm not trying to sound like a bitch. Just trying to pull out the details in a realistic way, because I can't see us using this currently.
 
I looked into your script setup. Lots of questions still remain unanswered.

We may work together if you want to, our tools aren't made for your roms but could be tuned to :D

Cit.apk is an MI ONE only apk. I don't see it there. This is because you said you have support for SGS family only. That doesn't help us. Our REPOs build all official Xiaomi ROMs.
  1. What stops one from overriding or inserting wrong strings? Is there like x votes needed to approve a string?
  2. I saw there was /widget support and what not, but I didn't see anyone use it.
  3. What about drawables-xx? raw-xx? xml-xx? I didn't see those have any ability to be translated.
  4. I opened a random MIUI v4 APK (LBESEC). It had 3 languages -_- (I thought you said you had 24). So then I opened ThemeManager.apk. It had about 12, so thats better. Still not 24 though.
  5. Lots of APKs are different among devices. framework-res has differences in the Sony Ericson family, along with Browser.apk being different on the MI ONE. How do you support same APKs different structure?
  1. What stops me from ovverriding or inserting wrong strings here then to pull in your main repo? Is someone voting to approve my strings? BTW, this could be a start for an answear: http://common.myui.fr/
  2. I can't understand what you are talking about?
  3. Our tools aren't made for your roms but could be tuned to :D
  4. Oups you are right, there is
    Code:
    `--# find | grep values | sed 's|\/res\/|%|g' | cut -d '%' -f2 | sed 's|\/|%|g' | cut -d '%' -f1| sort | uniq | wc -l
     74
    74 languages and variants. That's 26 languages. Here is the list (yes I love bash):
    Code:
    ``--# find | grep values | sed 's|\/res\/|%|g' | cut -d '%' -f2 | sed 's|\/|%|g' | cut -d '%' -f1 | cut -d '-' -f2 | grep -v 'mcc' | grep -v 'sw' | grep -v 'value' | sort --unique | wc -l
    26
    .-(/var/www/translate.myui.fr/web/Traductions/MIUIv4/system)--------------------------------------------------------------------------------------------(root@ks392186)-
    `--# find | grep values | sed 's|\/res\/|%|g' | cut -d '%' -f2 | sed 's|\/|%|g' | cut -d '%' -f1 | cut -d '-' -f2 | grep -v 'mcc' | grep -v 'sw' | grep -v 'value' | sort --unique
    ar
    cs
    da
    de
    el
    en
    es
    fa
    fr
    he
    hr
    hu
    id
    it
    iw
    ko
    nl
    pl
    pt
    ro
    ru
    sk
    sl
    sv
    tr
    vi
    BTW not all the apk are fully translated (this project is young ;))
  5. Our tools aren't made for your roms but could be tuned to :D But if you try to visit our site again, you can see that there is a new testing entrie,which is compatible with your structure. [/URL]
Its a great idea, but it just can't be pulled off without missing tons of details. All our of translation REPOs have between 1-5 people on them. There updated frequently and have support for everything beyond values folders. This method allows the common user to help, but doesn't aid much in the actual translation. I'm not trying to sound like a bitch. Just trying to pull out the details in a realistic way, because I can't see us using this currently.

If each of your repos have an entry in our tool (just need a git clone), as each modified value.xml (yes, no support for png, array.xml, bools.xml... yet) has its detailled commit message, and possibly a lockup according to a login or mail adress, I can't see any technical issue there. Have I told you that our tools aren't made for your roms but could be tuned to :D ?

So the tool I'm showing you is just in its early stages, it DO suit Samsung Galaxy S MyUI needs, but I easily understand that it is not done for miuiandroid needs and so need some rework, but hey, if it can bring something to your community, then we should and talk together to make life easier for everyone (rom makers, translators, user, etc..).

Hope this help ;)

RolluS
 
My initial idea is to do an Tibetan translation. Since Android/MIUI doesn't support Tibetan at the moment, it makes the work a little bit complicated. I can work on a repo if you think it is ok.

Do you have any guide to build a latest MIUI development ROM by myself? Seems a lots of people here know how but I can't find a tutorial here.

If I download Micode/patchrom_miui, compile it, is it the rom for Mi2(s)?

Thanks,

Ziggy
 
you can add just missing strings also to values-fr-rFR.. so for example in main folder will me values-fr and in device folder just device specific strings for that apk in values-fr-rFR...

so in output apk will be values-fr and values-fr-rFR..
 
Status
Not open for further replies.