برنامه خود را با pseudolocales تست کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
شبه زبان محلی است که برای شبیهسازی ویژگیهای زبانهایی طراحی شده است که هنگام ترجمه یک برنامه باعث ایجاد رابط کاربری، طرحبندی و سایر مشکلات مرتبط با ترجمه میشوند. Pseudolocales توسط ترجمه های فوری و خودکار ایجاد می شوند که برای همه پیام های قابل بومی سازی به زبان انگلیسی قابل خواندن هستند. متن غیر شبهمحلی به پیامهای غیرقابل ترجمه در کد منبع شما اشاره میکند.
Pseudolocales باعث صرفه جویی در زمان و هزینه می شود زیرا می توانید قبل از اینکه پیام های خود را به مخزن منبع تحویل دهید تا بعداً برای ترجمه ارسال شوند، تنظیماتی را در متن UI و طرح آن انجام دهید. برای لیستی از مشکلات احتمالی ترجمه، به بخش مسائل محلی سازی نقطه مراجعه کنید.

شکل 1. شبه انگلیسی (XA).
نامهای شبه زبان اندروید از قراردادهای نامگذاری محلی استاندارد پیروی میکنند و شناسههای محلی آنها را میتوان با هر زبان برنامهنویسی سازگار با BCP 47 تجزیه کرد. از این نظر، pseudolocales مانند هر محلی دیگر مانند فرانسوی، چینی یا روسی است.
پلتفرم اندروید دو شبه زبان زیر را برای نمایش زبانهای چپ به راست (LTR) و راست به چپ (RTL) ارائه میکند:

شکل 2. شبه AR (XB).
انگلیسی (XA): لهجههای لاتین را به متن اصلی رابط کاربری انگلیسی اضافه میکند، متن اصلی را با افزودن متن بدون لهجه گسترش میدهد و هر واحد پیام را در براکت قرار میدهد تا مشکلات احتمالی از متن گسترشیافته را آشکار کند. مشکلات بالقوه می تواند شکستگی طرح و نحو پیام بد شکل گرفته باشد، مانند تقسیم یک جمله به چند قسمت که به صورت پیام های پرانتزی متعدد نمایش داده می شود. شبه انگلیسی (XA) در شکل 1 نشان داده شده است.
AR (XB): جهت متن پیامهای چپ به راست اصلی را در جهت راست به چپ تنظیم میکند که ترتیب کاراکترها را در پیام اصلی معکوس میکند. شبه AR (XB) در شکل 2 نشان داده شده است.
Pseudolocales می تواند به شما کمک کند تا یک نسخه RTL از برنامه خود بسازید، حتی اگر به هیچ زبان RTL صحبت نکنید.
فعال کردن pseudolocales
Pseudolocales معمولاً به ساختهای توسعهگرا اضافه میشوند. هنگامی که یک شبه زبان را در دستگاه خود انتخاب می کنید، همه برنامه هایی که از شبه زبان ها پشتیبانی می کنند، از جمله همه برنامه های سیستمی مانند برنامه تنظیمات و پانل تنظیمات سریع، ویژگی های شبه زبان انتخاب شده را می گیرند.
برای استفاده از pseudolocales Android، باید Android 4.3 (سطح API 18) یا بالاتر را اجرا کنید و گزینه های توسعه دهنده را در دستگاه خود فعال کنید. همچنین باید پس از فعال کردن گزینه های توسعه دهنده، دستگاه خود را مجددا راه اندازی کنید.
روش زیر نحوه فعال کردن pseudolocales را توضیح می دهد:
در Android Studio، با افزودن پیکربندی زیر به فایل build.gradle
خود، pseudolocales را برای یک برنامه خاص فعال کنید:
کاتلین
android {
...
buildTypes.getByName("debug") {
isPseudoLocalesEnabled = true
}
}
اپلیکیشن خود را بسازید و اجرا کنید .

شکل 3. یک شبه فاصله را انتخاب کنید.
از برنامه تنظیمات برای انتخاب شبهکاله استفاده کنید. این مرحله بر اساس نسخه اندروید شما متفاوت است، به شرح زیر:
Android 5.0 (سطح API 21) یا بالاتر
- در دستگاه، برنامه تنظیمات را باز کنید و روی زبانها و ورودی > تنظیمات برگزیده زبان ضربه بزنید.
- در لیست ترجیحات زبان ، زبانه را بکشید تا یک شبه زبان به بالای لیست منتقل شود و آن را به زبان فعال تبدیل کنید. شکل 3 را ببینید.
Android 4.4.4 (سطح API 19) یا پایین تر
- در دستگاه، برنامه تنظیمات را باز کنید و روی زبانها و ورودی > تنظیمات برگزیده زبان > افزودن زبان ضربه بزنید.
- برای افزودن آن به لیست ترجیحات زبان، روی یک شبه زبان ضربه بزنید.
- در لیست ترجیحات زبان ، زبانه را بکشید تا یک شبه زبان به بالای لیست منتقل شود و آن را به زبان فعال تبدیل کنید. شکل 3 را ببینید.
مشکلات محلی سازی نقطه
Pseudolocales با کمک به شناسایی مشکلات در زمینههای زیر، روشی موثر و صرفهجویی در زمان برای شناسایی مشکلات بالقوه بومیسازی در UI ارائه میکند:
- رشته های رمزگذاری شده که نمی توانند برای ترجمه ارسال شوند، به صورت متن بدون لهجه در زبان شبه نمایش داده می شوند تا قابل توجه باشند.
- مشکلات طرحبندی UI ناشی از گسترش متن، نشان میدهد که در کجای رابط کاربری به دلیل طول متن میتواند خراب شود.
الحاق رشته، که به صورت یک پیام تقسیم شده در دو یا چند براکت نمایش داده می شود. این امر میتواند ترجمه صحیح را دشوار کند، زیرا مترجمان مجبورند هر بخش را مستقلاً بدون اطلاع از مرتبط بودن بخشها ترجمه کنند. الحاق رشته ها همچنین می تواند ترجمه صحیح را غیرممکن کند، زیرا زبان های مختلف ممکن است به ترتیب متفاوتی از قطعات یا ساختار جمله کاملاً متفاوتی نیاز داشته باشند. به عنوان مثال، زبان هایی مانند ژاپنی، کره ای و تامیل فعل را در انتهای جمله قرار می دهند. هنگامی که یک جمله به هم پیوسته است، مترجمان نمی توانند ترتیب کلمات را در صورت نیاز تغییر دهند.
مشکلات متنی دو جهته (BIDI)، مانند زمانی که محتوا در یک جهت متن شامل یک عبارت درونی در جهت متن مخالف است، که خواندن رشته را دشوار می کند.
مشکلات راست به چپ (RTL)، مانند عدم نمایش عناصر. برخی از مثالها عبارتند از یک عنصر UI که به سمت چپ حرکت نمیکند، متن معکوس نمیشود و به سمت چپ حرکت میکند، یا علامتهای نقطهگذاری نادرست، مانند "قانون pseudolocales!" تغییر به "elur selacoloduesp!" به جای "!elur selacoloduesp".
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Test your app with pseudolocales\n\nA pseudolocale is a locale that is designed to simulate characteristics of\nlanguages that cause UI, layout, and other translation-related problems when an\napp\nis translated. Pseudolocales are created by instant and automatic translations\nthat are readable in English for all *localizable* messages.\nUn-pseudolocalized text points to untranslatable messages in your source code.\n\nPseudolocales save time\nand money because you can make adjustments to the UI text and its layout before\nyou commit your messages to the source repository to be sent for translation\nlater. For a list of potential translation problems, see the\n[Spot localization issues](#spot_localization_issues) section. \n\n**Figure 1.** English (XA) pseudolocale.\n\nThe Android pseudolocale names follow standard locale naming conventions, and\ntheir locale IDs can be parsed by any BCP 47 compliant programming language.\nIn this sense, pseudolocales are just like any other locales, such as French,\nChinese, or Russian.\n\nThe Android platform provides the following two pseudolocales to represent\nleft-to-right (LTR) and right-to-left (RTL) languages: \n\n**Figure 2.** AR (XB) pseudolocale.\n\n**English (XA):** adds Latin accents to the base English UI text, expands the\noriginal text by adding non-accented text, and brackets each message unit to\nexpose potential issues from expanded text. Potential issues can be layout\nbreakage and badly formed message syntax, such as a sentence split\ninto multiple parts displaying as multiple bracketed messages. The English (XA)\npseudolocale is shown in figure 1.\n\n**AR (XB):** sets the text direction of the original left-to-right messages to\nthe right-to-left direction, which reverses the order of the characters in the\noriginal message. The AR (XB) pseudolocale is shown in figure 2.\n\nPseudolocales can help you make an RTL version of your app, even if you don't\nwrite or speak any RTL languages.\n\nEnable pseudolocales\n--------------------\n\nPseudolocales are usually added to developer-oriented builds. When you choose a\npseudolocale on your device, all the apps that support pseudolocales take on\nthe characteristics of the selected pseudolocale, including all the system apps\nsuch as the Settings app and Quick Settings panel.\n\n\u003cbr /\u003e\n\n\nTo use the Android pseudolocales, you must be running\nAndroid 4.3 (API level 18) or higher and have\n[developer options](/studio/debug/dev-options) enabled\non your device. You must also reboot your device after enabling\ndeveloper options.\n\nThe following procedure explains how to enable pseudolocales:\n\n1. In Android Studio, enable pseudolocales for a specific app by adding the\n following configuration to your `build.gradle` file:\n\n ### Groovy\n\n ```groovy\n android {\n ...\n buildTypes {\n debug {\n pseudoLocalesEnabled true\n }\n }\n }\n ```\n\n ### Kotlin\n\n ```kotlin\n android {\n ...\n buildTypes.getByName(\"debug\") {\n isPseudoLocalesEnabled = true\n }\n }\n ```\n2. [Build and run your app](/studio/run).\n\n **Figure 3.** Select a pseudolocale.\n3. Use the Settings app to select a pseudolocale. This step varies based on your\n Android version, as follows:\n\n **Android 5.0 (API level 21) or higher**\n 1. On the device, open the Settings app and tap **Languages and input \\\u003e\n Language preferences**.\n 2. In the **Language preferences** list, drag the tab to move a pseudolocale to the top of the list and make it the active language. See figure 3.\n\n **Android 4.4.4 (API level 19) or lower**\n 1. On the device, open the Settings app and tap **Languages and input \\\u003e\n Language preferences \\\u003e Add a language**.\n 2. Tap a pseudolocale to add it to the **Language preferences** list.\n 3. In the **Language preferences** list, drag the tab to move a pseudolocale to the top of the list and make it the active language See figure 3.\n\nSpot localization issues\n------------------------\n\nPseudolocales provide a time-saving and effective way to spot potential\nlocalizability issues in the UI by helping you identify problems in the\nfollowing areas:\n\n- Hardcoded strings, which can't be sent to translation, display as unaccented text in the pseudolocale to make them noticeable.\n- UI layout issues caused by text expansion, showing where the UI can break due to text length.\n- String concatenation, which displays as one message split across two or\n more brackets. This can make correct translation difficult, because translators\n have to translate each part independently without knowing that the parts\n are related. String concatenation can also make correct translation impossible,\n because different\n languages might require a different order of parts or a completely different\n sentence structure. For example, languages such as Japanese, Korean, and\n Tamil place the verb at the end of a sentence. When a sentence is concatenated,\n translators can't change the word order as needed.\n\n- Bidirectional (BIDI) text problems, such as when content in one text\n direction\n includes an inline phrase in the opposite text direction, making the string\n difficult to read.\n\n- Right-to-left (RTL) problems, such as elements not being mirrored. Some examples are\n a UI element not moving to the left, text not reversing and moving to the\n left, or misplaced punctuation, such as \"pseudolocales rule!\" changing to\n \"elur selacoloduesp!\" instead of \"!elur selacoloduesp\"."]]