语言本地化

时间:2017-04-06 10:29:50

标签: ios objective-c arabic-support

我正在开发一个支持4种不同语言的应用程序。其中一种语言是阿拉伯语。在整个应用程序中使用OpenSans字体

我得到了json的回应,

"card_description" = "\U00d9\U0160\U00d9\U2026\U00d9\U0192\U00d9\U2020\U00d9\U0192 \U00d8\U00b1\U00d9\U0192\U00d9\U02c6\U00d8\U00a8 \U00d8\U00a7\U00d9\U201e\U00d8\U00af\U00d8\U00b1\U00d8\U00a7\U00d8\U00ac\U00d8\U00a9 \U00d9\U02c6\U00d8\U00a7\U00d9\U201e\U00d8\U00aa\U00d9\U2020\U00d9\U201a\U00d9\U201e \U00d8\U00a8\U00d9\U2021\U00d8\U00a7 \U00d8\U00b9\U00d8\U00a8\U00d8\U00b1 \U00d8\U00a7\U00d9\U201e\U00d9\U0192\U00d8\U00ab\U00d9\U0160\U00d8\U00b1 \U00d9\U2026\U00d9\U2020
\n\U00d8\U00a7\U00d9\U201e\U00d9\U2026\U00d8\U00af\U00d9\U2020 \U00d9\U02c6\U00d8\U00a7\U00d9\U201e\U00d8\U00a8\U00d9\U201e\U00d8\U00af\U00d8\U00a7\U00d8\U00aa \U00d9\U0081\U00d9\U0160 \U00d8\U00a7\U00d9\U201e\U00d8\U00af\U00d8\U00a7\U00d9\U2020\U00d9\U2026\U00d8\U00a7\U00d8\U00b1\U00d9\U0192";

通过在UTF8String中转换它,我在模拟器中运行应用程序后得到以下结果。

enter image description here

在代码下方用于显示标签中的文字

[cell.btnDescription setTitle:[NSString stringWithUTF8String:[[[arrCards objectAtIndex:indexPath.row] valueForKey:wCARD_DESC] cStringUsingEncoding:NSUTF8StringEncoding]] forState:UIControlStateNormal];

我没有得到适当的阿拉伯语言结果。

任何人都可以帮助我吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我认为您不需要转换为UTFString。 只需使用以下代码即可用于其他语言:

[cell.btnDescription setTitle:[[arrCards objectAtIndex:indexPath.row] valueForKey:wCARD_DESC] forState:UIControlStateNormal];

不要担心JSON响应阿拉伯语文本只会在日志中显示。

答案 1 :(得分:1)

您无需执行以下代码来解密阿拉伯语内容。

[cell.btnDescription setTitle:[NSString stringWithUTF8String:[[[arrCards objectAtIndex:indexPath.row] valueForKey:wCARD_DESC] cStringUsingEncoding:NSUTF8StringEncoding]] forState:UIControlStateNormal];

整件事来自JSON,他们将为您解码/编码,我遇到了与我的阿拉伯应用程序相同的问题,而JSON开发人员所做的是他们添加了一个头函数,即

  1. header('Content-type: application/json;charset=utf-8');
  2. 并通过以下函数解码值:

    1. html_entity_decode
    2. 按照下图,它可能对您有所帮助。

      enter image description here

      由于