2017-11-30 9 views
0

こんにちは私はいくつかの画像を表示するimageViewを持っています。私はあらゆる言語に異なる絵を描きたい。したがって、ユーザーのローカリゼーションがドイツ語の場合、ローカライズされた英語のユーザーとは異なる画像が表示されます。ローカライゼーションによるImageViewの画像の変更

これは私のコードです。すべてのローカリゼーションにいくつかのimageArrayを作成するにはどうすればよいですか?

おかげ

override func viewDidLoad() { 

    super.viewDidLoad() 

    mainScrollView.frame = view.frame 


    imageArray = [#imageLiteral(resourceName: "help0"), #imageLiteral(resourceName: "help1"), #imageLiteral(resourceName: "help2"), #imageLiteral(resourceName: "help3"), #imageLiteral(resourceName: "help4")] 



    for i in 0..<imageArray.count{ 

     let imageView = UIImageView() 
     imageView.image = imageArray[i] 
     imageView.contentMode = .scaleAspectFit 
     let xPosition = self.view.frame.width * CGFloat(i) 

     imageView.frame = CGRect(x: xPosition , y: 0, width: self.mainScrollView.frame.width, height: self.mainScrollView.frame.height) 



     mainScrollView.contentSize.width = mainScrollView.frame.width * CGFloat(i + 1) 
     mainScrollView.addSubview(imageView) 

     self.view.sendSubview(toBack: mainScrollView) 

    } 
+1

のために使用される選択された言語

  • のための右のファイルにlocalziedされますニースの答えはこちら:https://stackoverflow.com/questions/21310819/how-to-localize-the-images-in-images-xcassets – Norman

  • 答えて

    0

    あなたはあなたにこのような配列を宣言して、NSLocalizedStringを使用して、このようにそれを行うことができます。

    let help0 = UIImage(named: NSLocalizedString("help0", comment: "")) 
    let help1 = UIImage(named: NSLocalizedString("help1", comment: "")) 
    let help2 = UIImage(named: NSLocalizedString("help2", comment: "")) 
    let help3 = UIImage(named: NSLocalizedString("help3", comment: "")) 
    let help4 = UIImage(named: NSLocalizedString("help4", comment: "")) 
    
    let imageArray = [help0, help1, help2, help3, help4] 
    

    を次に、あなたはあなたの例ENGGERにし、そこに画像を追加し、それらのファイルにあなたのローカライズlangiagesを追加あなたは(ローカリゼーションを追加する方法のa guide)このように、使用したい:あなたの0内の画像の名前

    Localization for English: 
    "help0" = "help0Eng"; 
    "help1" = "help1Eng"; 
    etc... 
    
    Localization for German: 
    "help0" = "help0Ger"; 
    "help1" = "help1Ger"; 
    etc... 
    

    そして、あなたのhelp0Enghelp0Gerなどであります。だから、次の処理が行われます。

    1. NSLocalizedString(「help0」、コメント:「」)イメージ名はhelp0
    0

    Localeは、あなたが探しているものがあります。開発時には、Locale.isoLanguageCodesを使用してすべての可能な言語コードの配列を取得できます(各コードは2文字または3文字の文字列です)。実行時に、ユーザの現在の言語の言語コードを返すには、Locale.current.languageCodeを使用します。

    これを実装するには、あなたがの線に沿ってヘルパー機能を持つことができます:あなたのviewDidLoad()

    func localizedImageArray() -> [UIImage] { 
        let currentLanguage = Locale.current.languageCode 
        let imageArray: [UIImage] 
    
        if currentLanguage == "ja" { 
         [#imageLiteral(resourceName: "help0_ja"), #imageLiteral(resourceName: "help1_ja"), #imageLiteral(resourceName: "help2_ja"), #imageLiteral(resourceName: "help3_ja"), #imageLiteral(resourceName: "help4_ja")] 
        } else if currentLanguage == "kr" { 
         [#imageLiteral(resourceName: "help0_kr"), #imageLiteral(resourceName: "help1_kr"), #imageLiteral(resourceName: "help2_kr"), #imageLiteral(resourceName: "help3_kr"), #imageLiteral(resourceName: "help4_kr")] 
        } else /* Default implementation */ { 
         [#imageLiteral(resourceName: "help0"), #imageLiteral(resourceName: "help1"), #imageLiteral(resourceName: "help2"), #imageLiteral(resourceName: "help3"), #imageLiteral(resourceName: "help4")] 
        } 
    
        return imageArray 
    } 
    

    、代わりにimageArray = /* the part where you set the array with literals */を宣言するには、imageArray = localizedImageArray()

    を宣言した文字列がない必要があることに注意してくださいは、このメソッドを使用してローカライズしてください。ローカライズされた文字列の場合は、NSLocalizedStringを使用します。

    関連する問題