我有一个Phonegap应用程序,我使用相机插件。问题是,按钮不使用原生iOS语言,而只是英文('Retake'和'Use'等)。
我正在做的应用程序是一个儿童应用程序,但他们不是母语为英语的人。所以我想用他们的母语。
有什么办法可以将这些按钮翻译成正确的语言吗?
答案 0 :(得分:2)
我能够通过修改项目plist(platforms/ios/ProjectName/ProjectNAme-Info.plist
)来更改标签语言。
我将CFBundleDevelopmentRegion
从English
更改为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}}