如果我从textedit或web复制某些内容并将其粘贴到可本地化的文件中,则会显示此编译错误.如果我在可本地化的文件中键入它,它不会显示任何错误.我向你保证我使用了正确的格式和';' 在文件中.
"New" = "New";
"In Progress" = "In Progress";
"Waiting" = "Waiting";
"Closed" = "Closed";
Run Code Online (Sandbox Code Playgroud) 我创建了一个名为"Localizable.strings"的字符串文件,并为其添加了两种语言,如下所示:
"CONNECTIONERROR" = "Check that you have a working internet connection.";
"CONNECTIONERRORTITLE" = "Network error";
Run Code Online (Sandbox Code Playgroud)
我还将文件转换为Unicode UTF-8但是,当我创建这样的UIAlertView时:
UIAlertView *myAlert = [[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"CONNECTIONERRORITLE",nil)
message:NSLocalizedString(@"CONNECTIONERROR",nil)
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
Run Code Online (Sandbox Code Playgroud)
警报视图仅显示关键文本,而不显示值.例如,如果我将UITextviews文本设置为NSLocalizedString(@"CONNECTIONERROR",nil),则它可以工作,但警报视图仅显示密钥.谁知道什么是错的?
在我当前的应用程序中,我有显示消息的代码,例如"5个已处理的项目".为了保持短语在语法上正确,即它是否应该是"5 Item"或"5 Items",我使用以下代码:
int numItems = 5;
NSString *myString = [[NSString alloc] initWithFormat:@"%d Item%@ Processed", numItems, (numItems == 1 ? @"" : @"s")];
Run Code Online (Sandbox Code Playgroud)
这个现在工作正常.但我正在本地化我的应用程序,并希望确保我正在翻译应用程序的所有语言中的文本语法正确.我可以这样做:
int numItems = 5;
NSString *myString = (numItems == 1 ?
NSLocalizedStringWithTable(@"%d Item Processed", @"myApp", @"singular version") :
NSLocalizedStringWithTable(@"%d Items Processed", @"myApp", @"plural version"));
Run Code Online (Sandbox Code Playgroud)
但是,并非所有语言都具有相同的复数操作规则!例如,(原谅我在这里非常具体的例子)俄语中,用最后一个数字1结尾的数字修改的名词(即21,31,但不是 11)采用主格,结束于2-4的数字采用了genitive奇异,5+采取属性复数的情况.这将需要更严格的逻辑来处理如何以语法正确的方式复数特定名词,并且该逻辑与英语逻辑不匹配.因此,从理论上讲,我不能在Objective-C代码中使用语法逻辑,而应该在strings文件中使用语法逻辑.有没有办法做到这一点?人们如何为他们的应用翻译动态文本,以使其在语法上保持正确?
iphone localization internationalization localizable.strings ios
我的应用程序必须支持阿拉伯语(从右到左的方向)和英语(从左到右的方向)语言,我需要设置UI并根据我的应用程序中的用户选择语言.
我将使用NSLayoutConstraint实现UI,以便它可以根据前导和尾随约束自动更新UI.
现在我的问题是我如何实现这一目标?由于我的设备语言是英语,我的应用程序用户选择阿拉伯语(仅限我的应用程序),所以我的流程,用户界面,动画等应该是从右到左.
谢谢
我有一个应用程序,我正在翻译成一堆不同的语言.问题是,澳大利亚的应用程序在新西兰会有一些不同的价值,而新西兰都是英语国家.
我创建了一个en_AU和一个en_NZ语言文件,但它们都使用标准的英文文件.我删除了英语文件,但它继续发生......
关于如何让这个工作的任何想法?
谢谢,
--D
我一直在我的应用程序中使用本地化,但由于某种原因,一些字符串(不是所有字符串)都不会翻译,我看到键而不是值.我试图通过这样做来检查应用程序是否找到了本地化文件:
NSString *enPath = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSString *hePath = [[NSBundle mainBundle] pathForResource:@"he" ofType:@"lproj"];
NSString *ruPath = [[NSBundle mainBundle] pathForResource:@"ru" ofType:@"lproj"];
NSString *esPath = [[NSBundle mainBundle] pathForResource:@"es" ofType:@"lproj"];
NSString *frPath = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
NSString *arPath = [[NSBundle mainBundle] pathForResource:@"ar" ofType:@"lproj"];
Run Code Online (Sandbox Code Playgroud)
而且没有一个是零.
我已经检查了本地化文件的名称,Localizable.strings它应该是这样的.还要检查文件中是否存在密钥Localizable.strings,确实存在.
我也尝试过:
也尝试做这个问题的一切.
重要的是要说这不仅仅是模拟器/缓存问题.它也在下载应用程序的设备上显示.(我有企业帐户).
我还能做些什么来识别或解决问题?
localization objective-c localizable.strings nslocalizedstring ios
如何添加换行符localizable.strings?
我尝试过\n,但没有成功.
我们正在构建一个包含我们希望本地化的动态数据的应用程序.我们知道如何在iOS和Android中本地化字符串,但在这种情况下,数据将从服务器动态下载,因此我们需要动态下载本地化文件.
通常我们将字符串文件存储在语言文件夹中.当文件来自服务器时,我们该怎么做?
我想从localizable.strings文件中读取文本.我正在从几个目录中收集用于翻译的字符串,并将文件放在一个.strings文件中.但后来我有几个相同翻译字符串的副本.我想以编程方式删除它.所以我需要从.strings文件中读取字符串(而不是注释),然后 - 然后对它们进行排序, - 删除重复的字符串,然后创建一个新的.strings文件.
是否可以读取字符串文件并将字符串和翻译后的值保存在字典中.我的意思是任何读取.text文件的内置方法,只有"key"="value"部分,避免使用/*...*/或#views部分.喜欢阅读配置文件.
我很乐意在应用程序中本地化字符串和图像.但是我在尝试本地化支持的语言(英语和德语)的应用程序图标时遇到了很多困难.
这甚至可能吗?根据Apple文档,您可以:
iOS应用程序应该是国际化的,并且为它支持的每种语言都有一个language.lproj文件夹.除了提供应用程序自定义资源的本地化版本之外, 您还可以通过在特定于语言的项目目录中放置具有相同名称的文件来本地化应用程序图标并启动映像.但是,即使您提供本地化版本,也应始终在应用程序包的顶层包含这些文件的默认版本.默认版本用于特定本地化不可用的情况.有关本地化资源的更多信息,请参阅"Bundles中的本地化资源".
我试图这样做没有运气.似乎没有任何有用的资源?
我试过的其他事情:
有没有人成功实现本地化应用图标?
ios ×7
localization ×6
xcode ×4
iphone ×3
android ×1
file ×1
ios11 ×1
objective-c ×1
swift ×1
text ×1
uialertview ×1