问题
I have translated a project in CyanogenMod (the Email app) to Hebrew by adding a values-he folder, and compiled the entire repository (make). I have made sure that the full languages make file includes the Hebrew language.
However, when I loaded the update zip to the phone and switched the language to Hebrew, I still received the English strings. I'm pretty sure I am missing a step.
Any idea, please?
EDIT: Again, my phone supports Hebrew - as evident by other applications that do switch locale according to the values-he folder content. It's just for the Email application that it doesn't work.
回答1:
According to ISO 639, he is the correct ISO 639-1 code for the hebrew language. Whereas iw was deprecated back in 1989. The reason some Android devices use iw is thanks to Sun, you can read the details.
Devices like the Nexus S, sold in the US use iw. If you go to Israel and check the locale on a phone sold there (Galaxy S for example), the language will most likely be reported as "He IL N/A עברית", so it correctly uses he and not the deprecated iw.
If you want to support this fully, you should include both variations to account for these differences.
回答2:
The reason this is happening is that Android is following legacy Java local codes: Hebrew is locale IW - not HE. Change it and it will likely work. Hope this is useful for someone who finds this question ...
回答3:
It could be that your phone locale is not set to use Hebrew. In that case, the default values folder is used. You may have success with removing strings.xml (and whatever else shares a name that is contained in the values-he) from the non-Hebrew values folder.
来源:https://stackoverflow.com/questions/5074769/cyanogenmod-translate-a-project