programing

strings.xml 파라미터가 가능한가요?

newsource 2023. 4. 15. 08:56

strings.xml 파라미터가 가능한가요?

Android 앱에서는, 국제화에 의한 스트링을 실장합니다.나는 다른 언어에서 문법과 문장을 만드는 방법에 문제가 있다.

예를 들어 다음과 같습니다.

"5분 전" - 영어

'vor 5 Minuten' - 독일어

strings.xml에서 다음과 같은 작업을 할 수 있습니까?

<string name="timeFormat">{0} minutes ago</string>

그리고 어떤 마법은

getString(R.id.timeFormat, dynamicTimeValue)

이 동작은 다른 어순에서도 다른 문제를 해결할 수 있습니다.

네, 표준 문자열 형식만 지정해 주세요.String.format()길.

방법 및 Android 또는 Java를 참조하십시오. Formatter문서를 참조해 주세요.

이 경우 문자열 정의는 다음과 같습니다.

<string name="timeFormat">%1$d minutes ago</string>

에 2개의 변수가 필요한 경우XML, 다음을 사용할 수 있습니다.

%1$d text... %2$d또는%1$s text... %2$sstring 변수의 경우.

예:

스트링스.xml

<string name="notyet">Website %1$s isn\'t yet available, I\'m working on it, please wait %2$s more days</string>

activity.displaces

String site = "site.tld";
String days = "11";

//Toast example
String notyet = getString(R.string.notyet, site, days);
Toast.makeText(getApplicationContext(), notyet, Toast.LENGTH_LONG).show();

String을 사용하여 문자열을 포맷해야 하는 경우.format(String, Object...)를 지정하면 포맷 인수를 문자열 리소스에 넣을 수 있습니다.예를 들어 다음과 같은 리소스를 사용합니다.

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

이 예에서 형식 문자열에는 두 개의 인수가 있습니다.%1$s는 문자열이고 %2$d는 10진수입니다.애플리케이션의 인수를 사용하여 다음과 같이 문자열 형식을 지정할 수 있습니다.

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);

자세한 것은, http://developer.android.com/intl/pt-br/guide/topics/resources/string-resource.html#FormattingAndStyling 를 참조해 주세요.

사용하는 방법은 여러 가지가 있으며 String Format에 대한 이 문서를 참조할 것을 권장합니다.

http://developer.android.com/intl/pt-br/reference/java/util/Formatter.html

그러나 변수가 하나만 필요한 경우 %[type]을(를) 사용해야 합니다. 여기서 [type]은(는) 모든 플래그가 될 수 있습니다(위의 사이트 내 플래그 유형 참조).(예: "My name is %s" 또는 내 이름을 대문자로 설정하려면 "My name is %S"를 사용합니다.)

<string name="welcome_messages">Hello, %1$S! You have %2$d new message(s) and your quote is %3$.2f%%.</string>

Hello, ANDROID! You have 1 new message(s) and your quote is 80,50%.

이 어플리케이션에는 표준 라이브러리 기능이 있습니다.android.text.format.DateUtils.getRelativeTimeSpanString().

언급URL : https://stackoverflow.com/questions/2397613/are-parameters-in-strings-xml-possible