2

我有一个 iOS 项目(当前的 XCode),它支持 5 种语言并且其中几乎没有目标。我希望能够以某种方式为每个目标选择语言(无需手动删除它们)。有没有办法做到这一点?

4

3 回答 3

1

我最终创建了两个脚本。同时,我将美国文件中的更改添加到默认 en lproj(我的美国和英国略有不同)。

一种用于删除不必要的语言

#!/bin/bash
if [ -e ProjectName.xcodeproj/project.pbxproj.backup ]; then
    echo "Last changes were not yet reverted."
else
    # move files from en-US to en
    cp -f en-US.lproj /* en.lproj */

    # remove from project file all occurences of unwanted languages
    cp ProjectName.xcodeproj/project.pbxproj ProjectName.xcodeproj/project.pbxproj.backup
    grep -v "en-GB.lproj" ProjectName.xcodeproj/project.pbxproj > ProjectName.xcodeproj/project.pbxproj2; mv ProjectName.xcodeproj/project.pbxproj2 ProjectName.xcodeproj/project.pbxproj
    grep -v "fr.lproj" ProjectName.xcodeproj/project.pbxproj > ProjectName.xcodeproj/project.pbxproj2; mv ProjectName.xcodeproj/project.pbxproj2 ProjectName.xcodeproj/project.pbxproj
    grep -v "it.lproj" ProjectName.xcodeproj/project.pbxproj > ProjectName.xcodeproj/project.pbxproj2; mv ProjectName.xcodeproj/project.pbxproj2 ProjectName.xcodeproj/project.pbxproj
    grep -v "sv.lproj" ProjectName.xcodeproj/project.pbxproj > ProjectName.xcodeproj/project.pbxproj2; mv ProjectName.xcodeproj/project.pbxproj2 ProjectName.xcodeproj/project.pbxproj

第二个是取回所有语言包

#!/bin/bash

if [ -e ProjectName.xcodeproj/project.pbxproj.backup ]; then
    mv ProjectName.xcodeproj/project.pbxproj.backup ProjectName.xcodeproj/project.pbxproj
fi
于 2013-07-11T22:21:13.880 回答
0

我所做的是:

1 - 创建两个语言字符串文件

在此处输入图像描述

2 - 对于每个字符串文件,选择要使用该文件的目标以及该目标可用的语言

在此处输入图像描述

在此处输入图像描述

于 2014-05-20T13:55:17.063 回答
-1

1) 最好的方法是在一个目标中添加任何本地化支持。您可以选择任何文件并选择“Make Localized..”以添加文件夹:

en.lproj
de.lproj

2)如果你不想做第一步,那么你可以只使用一个文件,你的本地化文本在哪里。并在每个目标上添加每个。例子:

仅在MyProject_en目标中添加的 Texts_en.txt 仅在MyProject_de目标 添加的Texts_de.txt

升级版:

或者您可以为每个目标添加一个预处理器宏

LANG_ENG
LANG_GER

在您的代码中,您必须使用它们

于 2013-01-22T11:22:01.953 回答