الوثائق / Android
موارد سلاسل Android، آلية
انقل النص الثابت في تخطيطات Android، و Jetpack Compose، و View code (Kotlin أو Java) إلى موارد السلاسل: strings.xml لكل لغة، واستدعاءات stringResource()، وقائمة لغات التطبيق.
كيف يعمل
في التخطيطات والقوائم، تصبح android:text و hint و contentDescription و title هي @string/…. في Compose، تصبح Text("…") و contentDescription = "…" داخل دوال @Composable هي stringResource(R.string.…, args)؛ تستخدم الـ toasts الـ context.getString.
يعمل عرض الكود في Kotlin أو Java أيضًا: label.setText("…") و setHint و setTitle وأزرار الحوار، و label.text = "…" الخاص بـ Kotlin، تصبح setText(R.string.…). يتم الإبلاغ عن نص العرض المبني من القيم، نظرًا لأن setText لا يأخذ وسائط تنسيق.
تصبح العناصر النائبة %1$s و %2$s ... مرقمة حسب ترتيبها في النص المصدر، بحيث يمكن للترجمة إعادة ترتيبها.
يصبح العدد مع كلمته، "$n ${if (n == 1) "item" else "items"}"، مورد <plurals> يُقرأ باستخدام pluralStringResource(R.plurals.…, n, n) (أو getQuantityString في toast).
قبل وبعد
المخرجات الحقيقية للمحرك لهذا الملف. في تشغيل حقيقي، يقوم النموذج المستضاف بتسمية المفاتيح من السياق.
@Composable
fun Cart(name: String) {
Column {
Text("Welcome back, $name!")
Text(text = "Checkout")
}
}import androidx.compose.ui.res.stringResource
@Composable
fun Cart(name: String) {
Column {
Text(stringResource(R.string.cart_welcome_back, name))
Text(text = stringResource(R.string.cart_checkout))
}
}<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="cart_welcome_back">Welcome back, %1$s!</string>
<string name="cart_checkout">Checkout</string>
</resources>ما يضيفه الإعداد
الإعداد الأول يقوم بإعداد موارد السلاسل النصية لنظام Android إذا لم يكن المشروع يحتوي عليه بعد:
res/values/strings.xmlوres/values-<lang>/strings.xmlres/xml/locales_config.xmlوandroid:localeConfig، لذا يسرد Android 13+ اللغات في إعدادات التطبيق
قم بتشغيله
يتطلب CLI إصدار Node.js 22 أو أحدث، لا شيء آخر: npx يقوم بتشغيله دون إضافة package.json إلى المشروع. لا يوجد Node على جهازك؟ إجراء GitHub أدناه يقوم بتشغيله لك.
npx localize-dev login
# Preview, then write the changes
npx localize-dev run --dry-run -l es,fr,de
npx localize-dev run -l es,fr,de
# Or open a pull request instead
npx localize-dev pr -l es,fr,deأو أضف إجراء GitHub واحصل على طلب سحب عند كل دفعة. جربه على الكود الخاص بك أولاً في ملعب.