2017-01-25 16 views
1

ヘブライ語、スペイン語、英語、カタロニア語、ハンガリー語で翻訳されたアプリがあります。 ヘブライ語を除くすべての言語が機能します。ヘブライ語のUnknownFormatException

コードは、この行の糸くずのエラーを示しています lblUsername.setText(getString(R.string.welcome, mUserModel.getUserName()));

翻訳は以下の通りです:ヘブライ語 <string name="welcome">"ברוך/ה הבא/ה, s%\"</string>

英語 ため のstrings.xml <string name="welcome">Welcome, %s</string>

のstrings.xml私は私のデバイスに設定された英語のロケールでアプリケーションを実行し、それは正常に動作します。他の言語でも同じです。しかし、ヘブライ語で、私はこのエラーを取得:

java.lang.RuntimeException: Unable to resume activity {be.iminds.mresist/be.iminds.mresist.activities.MainActivity}: java.util.UnknownFormatConversionException: Conversion: 
                     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3103) 
                     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134) 
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) 
                     at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                     at android.os.Handler.dispatchMessage(Handler.java:102) 
                     at android.os.Looper.loop(Looper.java:148) 
                     at android.app.ActivityThread.main(ActivityThread.java:5417) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                    Caused by: java.util.UnknownFormatConversionException: Conversion: 
                     at java.util.Formatter$FormatSpecifierParser.unknownFormatConversionException(Formatter.java:2321) 
                     at java.util.Formatter$FormatSpecifierParser.advance(Formatter.java:2315) 
                     at java.util.Formatter$FormatSpecifierParser.parseConversionType(Formatter.java:2394) 
                     at java.util.Formatter$FormatSpecifierParser.parseArgumentIndexAndFlags(Formatter.java:2365) 
                     at java.util.Formatter$FormatSpecifierParser.parseFormatToken(Formatter.java:2298) 
                     at java.util.Formatter.doFormat(Formatter.java:1071) 
                     at java.util.Formatter.format(Formatter.java:1042) 
                     at java.util.Formatter.format(Formatter.java:1011) 
                     at java.lang.String.format(String.java:1554) 
                     at android.content.res.Resources.getString(Resources.java:430) 
                     at android.content.Context.getString(Context.java:425) 
                     at be.iminds.mresist.activities.MainActivity.init(MainActivity.java:187) 
    ... 

なぜこの他の言語のための作業ではなく、ヘブライ語のでしょうか?

答えて

0

翻訳文字列の%は、sの前に表示され、後には表示されません。なぜバックスラッシュを追加したのかもわかりません。

は確かにそれです

<string name="welcome">"ברוך/ה הבא/ה, %s"</string> 
+0

<string name="welcome">"ברוך/ה הבא/ה, s%\"</string> 

を交換してください。奇妙なことに、これは '%d 'のケースではないようです。 – Ventis

関連する問題