我使用genstrings命令创建.strings文件.使用UTF-16编码的此命令的输出文件,但是当我将生成的.strings文件添加到我的项目然后bild时,Xcode显示警告:
指定的输入编码是Unicode(UTF-8),但文件内容似乎是Unicode(UTF-16); 视为Unicode(UTF-16).
我在textEdit.app中打开.strings文件并用UTF-16重新保存它,但这没有效果.
热门解决这个问题?Thaks!
谷歌搜索,但没有找到解决方案:
基本上,我有一个Localizable.strings设置,我在我的代码中使用.但是,如果我能以某种方式在我的XIB中引用这些值,那将是非常甜蜜的,这样我就可以避免每种语言创建一个烦人的XIB ...
这可能吗?
iphone localization interface-builder uilabel localizable.strings
我正在将iOS项目翻译成葡萄牙语,我已经创建了一个pt.lproj/Localizable.strings文件,并且我已经在源代码中添加了NSLocalizedString().一切正常!有一个小问题 - XIB文件中的字符串不会被翻译...我知道这是设计的.
我已经看到ibtool命令可用于从名为x的XIB文件中删除字符串并将其放入名为x.strings的文件中......但我的问题是,有没有办法从所有xib中提取字符串文件并将它们全部放入一个.strings文件中(例如Localizable.strings?或者甚至另一个名为XIBs.strings的文件会好吗?)
我们在Localization.string文件中有键值对.
"spanish-key" = "Espa\u00f1ol";
Run Code Online (Sandbox Code Playgroud)
当我们获取并分配给标签时,app会将其显示为"Espau00f1ol".
不行.
self.label1.text= NSLocalizedString(@"spanish-key", nil);
Run Code Online (Sandbox Code Playgroud)
它工作 - 以所需的格式显示.
self.label1.text= @"Espa\u00f1ol";
Run Code Online (Sandbox Code Playgroud)
我们使用时可能会出现什么问题
NSLocalizedString(@"spanish-key", nil)?
Run Code Online (Sandbox Code Playgroud)
如果我们设置\ U而不是\ u,那么它可以工作.
"spanish-key" = "Espa\U00f1ol";
Run Code Online (Sandbox Code Playgroud)
何时使用"\ Uxxxx"和"\ uxxxx"?
使用Xcode 4.5 SDK iOS 6.0,我无法将本地化添加到Localizable.strings文件中.在Xcode 4.4.1-所有添加的语言列表下面是一个"+"来添加其他语言.但是在Xcode 4.5中我看不到它,除了默认的英语,我不能添加任何其他语言.

有人解决了这个问题吗?
谢谢 !
我添加了一个自定义字符串文件,用于我的项目的一组特定的本地化字符串,它是基于程序键而不是显式声明的键使用的(即使用bundle的localizedStringForKey,使用从某些变量而不是NSLocalizedString生成的键)一个静态键值).
我想从这个文件生成一个XLIFF,最好是在使用"Export for Localizations ..."时.当我导出它时,似乎只为代码或接口中的字符串生成XLIFF,并且不包括我的自定义字符串文件内容.
我无法从Localizable.strings文件中获取正确的本地化德语字符串.我的应用设置如下所示
Main.storyboard
Localizable.strings
在应用程序内部我试图得到像这样的字符串
NSString *item = NSLocalizedString(@"Group expenses", @"Menu item");
Run Code Online (Sandbox Code Playgroud)
Localizable.strings(德语)文件如下所示
/* Menu item */
"Group expenses" = "Gruppenausgaben";
Run Code Online (Sandbox Code Playgroud)
当我item总是得到英文字符串后设置断点,但资源的路径似乎正确NSString *path = [[NSBundle mainBundle] pathForResource:[[NSLocale preferredLanguages] objectAtIndex:0] ofType:@"lproj"];
给了我:/data/Containers/Bundle/Application/5E3ED6BF-71E1-4C60-9EDA-610C9A32B8EF/MyApp.app/de.lproj
我也已经本地化了字符串文件
它也包含在Copy Bundle Resources中
我在stackoverflow上尝试了几个不同问题的答案,比如删除app并做一个干净的(shift + cmd + k),设置应用程序语言
Edit Scheme,...
当我尝试本地化我的应用程序并为目标语言创建一个新的Main.strings文件时,我在界面构建器(标签,按钮,...)中创建的所有内容都会添加到新的Main.strings文件中(基本和语言)我可以相应地本地化文本.
但是当我稍后在界面构建器中向ViewController添加标签或按钮时,它不会自动添加到Main.strings文件中以获取基本和语言版本.
那么,我怎样才能找出按钮/标签的ObjectID是什么,以便我可以将它添加到字符串文件中?
或者是否有另一种方法可以强制Xcode自动将新添加的标签和按钮添加到这些文件中?
我想标题是不言自明的.
我有一个需要国际化的故事板,我想确定基础国际化是否有用.
我计划只向翻译人员发送字符串文件,基础国际化允许使用字符串文件对故事板中的文本进行本地化,而不是为每种语言设置故事板副本.我看到的缺点是生成的字符串键值对看起来像这样:
"CT6-M1-BFU.title"="银行";
其中CT6-M1-BFU称为对象ID.现在,如果我将这些文件发送给翻译器,则没有足够的上下文来翻译字符串.例如,"银行"一词可能意味着金融机构或河岸,具体取决于具体情况.在另一种语言中,这两个词可能不是同音异义词,不同的词将用于这两个含义.没有上下文信息,就无法翻译.
问题是字符串键值不提供有关此字符串出现位置的信息,除非您有权访问故事板并知道如何在其中进行搜索.
有没有办法定义自定义字符串键或我最终必须从代码手动设置字符串?