我有一个只支持荷兰语和法语的应用程序.英语不是此应用程序的可用语言.如果我想使用可本地化的字符串,则默认情况下总是设置为英语.我希望这是荷兰人.所以我所做的就是使用英语可本地化的字符串文件并用荷兰语填充它.我唯一的问题是它在App Store中将英语显示为受支持的语言.有没有办法将默认的Localizable Strings文件更改为Dutch,以便显示的只有两种语言是荷兰语和法语?
提前致谢,
Lewion
我正在创建一个具有多种变体的应用程序.
这些变体将由多个Localizable.strings文件中的几个字符串控制.
但是,90%的字符串将保持不变.
我想拥有它,以便每个独特的Localizable.strings文件导入"master"文件,这样当我想要更改一个公共字符串时,我不必浏览每个app变体文件.
这可能吗?
我试图获得一个字符串文件表,用于NSLocalizedStringFromTableInBundle.
我正在使用这种方法:
+(NSBundle*)getBundleForLang:(NSString*)lang{
//get the path to the bundle
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"localizable" ofType:@"strings" inDirectory:nil forLocalization:lang];
NSLog(@"bundlePath = %@",bundlePath);
//load the bundle
NSBundle *langBundle = [[NSBundle alloc] initWithPath:[bundlePath stringByDeletingLastPathComponent]];
NSLog(@"langBundle = %@",langBundle);
return langBundle;
}
Run Code Online (Sandbox Code Playgroud)
虽然它在模拟器上运行良好,但当我尝试在iPhone设备上使用它时,我得到这个NSLog:
2011-12-09 00:40:14.533 MyApp[12754:707] langBundle = NSBundle
</var/mobile/Applications/915E6BCB-EC44-4F1D-891B-EF68E2FA89C2/MyApp.app/he.lproj>
(not yet loaded)
Run Code Online (Sandbox Code Playgroud)
为什么不加载,问题出在哪里?
谢谢
沙尼
每次启动应用程序时,我都会通过JSON文件加载翻译.我可以解析那个JSON,清理它并将它放在localizable.strings文件中吗?
如果没有,我是否可以从Documents目录中创建的可本地化文件加载本地化?
好的,这个问题的目标并不是严格的编程相关,而是程序员可以使用编程工具回答的问题,程序员可以在这里找到有用的答案.忍受我.
我发现在Mac OS X中更改系统语言是增强我对自然语言学习的有用方法,例如法语.然而,有时我发现法语中的菜单项或对话框我无法理解,谷歌翻译或将系统语言改回英语是一个难题.但我知道英文翻译隐藏在本地化文件的某个地方,并以某种方式映射到法语短语.所以我想要做的是从所有本地化文件中提取所有文本,以便用英语开发这个短语的映射=法语中的那个短语,这样我就可以轻松查找了.
我知道本地化文件存储在像Localizable.strings,lproj文件和nib文件这样的东西中,但是我无法确定它们的存储方式或如何使用它们.我可以编程,但我从来没有在Xcode中写过任何东西.我能找到的所有信息都是Mac OS/iOS程序员本地化他们的软件,而不是黑客提取已经制作的本地化信息.
如何从Mac OS X系统和第三方软件本地化文件中提取纯文本的外语信息?谢谢!
我有以下文件结构用于本地化.
A.xib
- > A.xib(基础)
- > A.strings(西班牙语)
- > A.strings(英文)
因为它是"使用基础国际化".我们可以期望只有一个xib文件和本地化所需的字符串文件.
但是,当我将此字符串文件转换为.xib时(我们的每种语言都有.xib文件.在Base Internationalization之前就是这种情况).事情开始在iOS模拟器上工作,设备响应这些变化.
注意: - 我还尝试重置模拟器,清理并创建构建但没有成功.
当我使用.strings文件进行本地化时,不知道为什么本地化失败了.
任何帮助,一个小错误在Xcode IDE上消耗更多时间和耗费开发时间.
我正在使用BartyCrouch来维护最新的本地化项目.我的项目目前翻译成4种不同的语言,我将添加一些新的语言.我的问题是我的基本Localizable.strings文件有大约200-300个资源,即使项目中当前使用的可能少于100个.
我正在寻找删除项目中未引用的本地化字符串的最佳方法,同时保留当前本地化的值.有没有本机解决方案或我必须使用第三方?如果是这样,有什么自动的吗?
我想用德语和日语翻译我的应用程序.我已经阅读了教程,但是我找不到我应该在我的应用程序的信息选项卡中查看的Base Internationalization框.我的信息选项卡中的主要部分是"自定义IOS目标属性","文档类型","导出的UTI"......没有任何关于本地化的信息.
我想我必须在"自定义IOS目标属性"中管理它,但我不知道如何.在那里,我添加了"Localizations"键和"English","German"和"Japanese"值,我还有一个关键的"Localization native development region",其值为"en".
然后我在Base.lproj中添加了我的Localizable.strings文件,但是在File Inspector中我只能看到"Base"和"English"作为Localization,没有关于德语和日语的内容.
我还注意到,当我进入编辑器>添加本地化时,我无法选择任何语言.
你看到了什么问题吗?
谢谢,
亚历克斯
我知道如何从 XAML 中的字符串资源获取资源:
{Binding OK, Source={StaticResource LocStrings}}
Run Code Online (Sandbox Code Playgroud)
但是,我想直接在 C# 中使用本地化字符串,例如
someString = Resources["LocStrings"]["StringId"];
Run Code Online (Sandbox Code Playgroud)
但这不能编译。
我想在我的iPhone应用程序中本地化几个字符串,它对我选择的5种语言起作用.但是,我有一个问题,如果我没有为特定语言定义一个键,我希望它选择英语作为后备,因为我知道我已经用英语定义了每个字符串.事情是,所有键都被翻译并不是很重要,因为即使iPhone设置为西班牙语,也可以显示英语.
例:
于:
"HELLO" = "hello" ;
"PERSON" = "my friend" ;
Run Code Online (Sandbox Code Playgroud)
ES:
"HELLO" = "hola" ;
Run Code Online (Sandbox Code Playgroud)
预期结果:
如果iPhone被设置为英语我想要它说:hello, my friend如果languange设置为西班牙语我想要它说hola, my friend.目前该应用程序将输出hola, PERSON.(我使用NSLocalizedString方法).
可能有一个非常简单的解决方案,但我找不到任何好的解决方案.谢谢您的帮助,
马蒂亚斯