Phonegap改变标签的语言?

时间:2013-03-01 10:38:57

标签: cordova

我有一个Phonegap应用程序,我使用相机插件。问题是,按钮不使用原生iOS语言,而只是英文('Retake'和'Use'等)。

我正在做的应用程序是一个儿童应用程序,但他们不是母语为英语的人。所以我想用他们的母语。

有什么办法可以将这些按钮翻译成正确的语言吗?

6 个答案:

答案 0 :(得分:2)

我能够通过修改项目plist(platforms/ios/ProjectName/ProjectNAme-Info.plist)来更改标签语言。

我将CFBundleDevelopmentRegionEnglish更改为fr_FR并添加了此数组:

<key>CFBundleLocalizations</key>
<array>
  <string>fr</string>
</array>

答案 1 :(得分:1)

如果您使用XCode作为IDE来开发项目,则可以将其本地化为普通的iOS项目。要了解这一点,您可以查看other post。您不需要为这些“单词”(重新使用,使用等)提供翻译,只需设置正确的本地化将告诉iOS使用本地语言。

但是,如果您使用PhoneGap Build来编译项目,请在PhoneGap Build论坛中查看this topic。与XCode过程类似,您需要在/ www目录下创建一个名为“locales”的文件夹,并在其中放置您想要使用的语言。同样,您不需要为该按钮提供翻译。 iOS将自行完成。

答案 2 :(得分:1)

如果您不希望在每次构建后手动更改XCode中的语言,您可以在Mac上的phonegap / cordova源代码中进行以下更新:

(使用cordova 3.6.3和法语区域设置的示例,您需要更新到您的版本和语言)

Folder : ~\.cordova\lib\npm_cache\cordova-ios\3.6.3\package\bin\templates\project\__PROJECT_NAME__\
File : __PROJECT_NAME__-Info.plist
Update :
    => Change <key>CFBundleDevelopmentRegion</key>
              <string>English</string>
       to     <key>CFBundleDevelopmentRegion</key>
              <string>France</string>

    => Add after it
              <key>CFBundleLocalizations</key>
              <array>
                    <string>fr</string>
              </array>

Folder : ~\.cordova\lib\npm_cache\cordova-ios\3.6.3\package\bin\templates\project\__PROJECT_NAME__\Resources\
Update :
    => Create a 'fr.lproj' folder by Copy/Paste of the 'en.lproj' folder
    => Complete the translation in 'fr.lproj/Localizable.strings' file (not required)

这将影响您使用此cordova版本构建的所有项目。

之前备份您的cordova文件夹,不要将不需要的文件留在'templates'文件夹下,否则它们将被复制到最终包中。

希望它有所帮助。

答案 3 :(得分:0)

Cordova幸运的是开源 第一步是报告Apache Cordova bug tracker上的错误。 然后,克隆cordova source code 以尝试了解插件无法显示正确语言的原因。

它并不复杂。在javascript函数和本机函数之间插入一个粘合剂。

答案 4 :(得分:0)

事实上,如果iOS无法找到CFBundleLocalizations中声明的本地化,CFBundleDevelopentRegion似乎是一个后备。

您无需更改该密钥。只需在.plist中添加ISO国家/地区代码数组(正如Michaël所做的那样)就足够了。

答案 5 :(得分:0)

解决方案是在plist文件中声明语言,如:

<key>CFBundleLocalizations</key> <array> <string>it</string> <string>es</string> </array>

如果您不想手动执行此操作,因为您可能无法跟踪plist文件,那么当您运行{Cordova Custom Config plugin时,可以使用https://bootstrap-datepicker.readthedocs.org/将缺少的密钥添加到plist文件中1}}