2

5つの言語をサポートしているiOSプロジェクト(現在のXCode)があり、ターゲットはほとんどありません。ターゲットごとに(手動で削除せずに)なんとかして言語を選択できるようにしたいと思います。それを行う方法はありますか?

4

3 に答える 3

1

最終的に2つのスクリプトを作成しました。同時に、米国のファイルからデフォルトのen lprojに変更を追加しています(米国とGBは少し異なります)。

不要な言語を削除するための1つ

#!/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

そして2番目にすべての言語パックを取り戻す

#!/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つの言語文字列ファイルを作成します

ここに画像の説明を入力してください

2-各文字列ファイルについて、ファイルを使用するターゲットとそのターゲットで使用可能な言語を選択します

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2014-05-20T13:55:17.063 に答える
-1

1)最善の方法は、1つのターゲットにローカリゼーションのサポートを追加することです。任意のファイルを選択し、「ローカライズする..」を選択してフォルダを追加できます。

en.lproj
de.lproj

2)最初のステップを実行したくない場合は、ローカリゼーションテキストである1つのファイルを使用できます。そして、各ターゲットにそれぞれを追加します。例:

MyProject_enターゲットのみ に追加されたTexts_en.txtMyProject_deターゲットのみに追加されTexts_de.txt

UPD:

または、ターゲットごとにプリプロセッサマクロを追加できます

LANG_ENG
LANG_GER

そしてあなたのコードではそれらを使わなければなりません

于 2013-01-22T11:22:01.953 に答える