# ترجم لعبة PlayDrop وصفحتها

اقرأ لغة اللاعب باستخدام sdk.host.language، واختر أيًا من لغات PlayDrop العشرين تدعمها، وترجم صفحة اللعبة وصورها.

Source: https://www.playdrop.ai/ar/create/learn/localization

يتحدث موقع PlayDrop وتطبيقاته 20 لغة. ويمكن للعبة أن تتبع لغة اللاعب في مكانين منفصلين: اللعبة نفسها، التي تترجمها في الكود، وصفحتها، التي تترجمها في catalogue.json.

## ابدأ بالإنجليزية ولغة واحدة أخرى

قدّم اللعبة بالإنجليزية، إضافة إلى لغة الشخص الذي تعمل معه إن كانت مختلفة. وأضف لغات أخرى عندما تخطط للوصول إلى لاعبيها. فالترجمة الجزئية أسوأ من لعبة إنجليزية جيدة، لذا ترجم الشاشات كاملة.

## ترجم اللعبة

تمثل `sdk.host.language` لغة اللاعب من بين لغات PlayDrop العشرين: `en` و`fr` و`de` و`es` و`pt-BR` و`it` و`nl` و`sv` و`nb` و`fi` و`pl` و`tr` و`ar` و`th` و`vi` و`id` و`ja` و`ko` و`zh-Hans` و`zh-Hant`.

```js
const STRINGS = { en: { play: "Play" }, fr: { play: "Jouer" } };
let language = "en";
try { language = sdk.host.language; } catch { /* older host */ }
const t = STRINGS[language] ?? STRINGS[language.split("-")[0]] ?? STRINGS.en;
```

`sdk.host.locale` هي القيمة الأقدم، وتقتصر على اللغات العشر الأصلية وتعطي `en` للغات الأخرى؛ ففضّل `language`. ويمكن للاثنتين أن ترميا الخطأ `host_locale_unavailable` في البيئات المضيفة القديمة جدًا. تُكتب العربية من اليمين إلى اليسار: اعكس التخطيط لا طريقة اللعب، واختبر الكلمات الطويلة بالألمانية والفنلندية.

## ترجم صفحة اللعبة

اضبط `sourceLocale` على اللغة التي كُتبت بها صفحة اللعبة، ثم أضف ترجمة كاملة واحدة لكل لغة في `listingLocalizations`، مفهرسة بحسب اللغة:

```json
{
  "sourceLocale": "en",
  "displayName": "Moon Jump",
  "description": "Jump between lunar platforms and reach the flag.",
  "listingLocalizations": {
    "fr": {
      "displayName": "Saut lunaire",
      "subtitle": "Des plateformes lunaires contre la montre",
      "description": "Sautez de plateforme en plateforme et atteignez le drapeau.",
      "controls": "Touchez ou appuyez sur Espace pour sauter.",
      "listing": { "heroLandscape": "listing/locales/fr/hero-landscape.png" }
    }
  }
}
```

- تحتاج كل ترجمة إلى `displayName` خاص بها. ويمكنها أيضًا ترجمة `subtitle` و`description` و`inspirationPrompt` و`controls` و`makingOf` و`releaseNotes`.
- توضع الصور المترجمة، مثل صورة رئيسية بعنوان مترجم، في كائن `listing` الخاص بالترجمة، باستخدام الحقول نفسها المستخدمة في [صفحة اللعبة](https://www.playdrop.ai/ar/create/learn/listing-assets) الأساسية.
- يسجّل PlayDrop أي إصدار من النص المصدر تطابقه كل ترجمة. وعندما تتغير صفحة اللعبة المصدر، حدّث الترجمات في عملية الرفع نفسها.

ترجمة صفحة اللعبة لا تترجم اللعبة، وترجمة اللعبة لا تترجم صفحتها. ولا تذكر إلا اللغات التي تدعمها اللعبة فعلًا.

## اللاعبون والبحث

يعرض الموقع كل لغة على عنوان خاص بها مع روابط بين النسخ، لتتمكن محركات البحث من عرض لغة القارئ. ويرى اللاعبون الترجمة التي تطابق لغتهم في PlayDrop، وإلا فيرون اللغة المصدر.

## أدلة ذات صلة

- [صور صفحة اللعبة والفيديو](https://www.playdrop.ai/ar/create/learn/listing-assets): الصور والفيديوهات التي يمكن أن تملكها صفحة لعبة على PlayDrop، ومساراتها وصيغها واتجاهاتها، وكيف تصنع صورًا تنجح في الخلاصات والبحث والمعاينات.
- [catalogue.json](https://www.playdrop.ai/ar/create/learn/catalogue-json): حقول catalogue.json في ألعاب PlayDrop: الهوية وصفحة اللعبة وطرق اللعب والواجهات وتسجيل الدخول وInstant والتحميل المسبق والوسائط والترجمات والنقاط والخوادم.
- [التحميل والإيقاف المؤقت والصوت](https://www.playdrop.ai/ar/create/learn/lifecycle): هيّئ PlayDrop SDK، وأعلن الجاهزية عند أول إطار قابل للعب، وأوقف مؤقتًا واستأنف بسلاسة، واتبع سياسة الصوت، وحمّل الملفات مسبقًا للعب دون اتصال.
