ملفات الخصائص

الترجمة بالذكاء الاصطناعي لملفات خصائص جافا باستخدام واجهة سطر أوامر Lingo.dev

ما هي ملفات Properties؟

ملفات Properties هي ملفات نصية بسيطة تحتوي على أزواج من المفاتيح والقيم تُستخدم بشكل شائع في تطبيقات جافا للإعدادات والترجمة.

على سبيل المثال:

app.title=MyApp
app.description=A simple demo application

user.greeting=Hello, world!
user.farewell=Thanks for using MyApp

error.message=Something went wrong
error.notFound=Page not found

ما هي واجهة سطر أوامر Lingo.dev؟

واجهة سطر أوامر Lingo.dev هي أداة مجانية ومفتوحة المصدر لترجمة التطبيقات والمحتوى باستخدام الذكاء الاصطناعي. تم تصميمها لتحل محل برامج إدارة الترجمة التقليدية مع دمجها في خطوط الإنتاج الحالية.

لمعرفة المزيد، راجع نظرة عامة.

حول هذا الدليل

يشرح هذا الدليل كيفية ترجمة ملفات Properties باستخدام واجهة سطر أوامر Lingo.dev.

ستتعلم كيفية:

  • إنشاء مشروع من الصفر
  • تكوين خط إنتاج الترجمة
  • إنشاء ترجمات باستخدام الذكاء الاصطناعي

المتطلبات الأساسية

لاستخدام واجهة سطر أوامر Lingo.dev، تأكد من تثبيت Node.js الإصدار 18 أو أحدث:

❯ node -v
v22.17.0

الخطوة 1. إعداد مشروع

في دليل مشروعك، قم بإنشاء ملف i18n.json:

{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.10",
  "locale": {
    "source": "en",
    "targets": ["es"]
  },
  "buckets": {}
}

يحدد هذا الملف سلوك خط إنتاج الترجمة، بما في ذلك اللغات التي سيتم الترجمة بينها وأين يوجد المحتوى القابل للترجمة في نظام الملفات.

لمعرفة المزيد حول الخصائص المتاحة، راجع i18n.json.

الخطوة 2. تكوين اللغة المصدر

اللغة المصدر هي اللغة والمنطقة الأصلية التي تمت كتابة المحتوى بها. لتكوين اللغة المصدر، قم بتعيين خاصية locale.source في ملف i18n.json:

{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.10",
  "locale": {
    "source": "en",
    "targets": ["es"]
  },
  "buckets": {}
}

يجب توفير اللغة المصدر كـ علامة لغة BCP 47.

للحصول على القائمة الكاملة لرموز اللغات التي تدعمها واجهة سطر أوامر Lingo.dev، راجع رموز اللغات المدعومة.

الخطوة 3. تكوين اللغات المستهدفة

اللغات المستهدفة هي اللغات والمناطق التي ترغب في ترجمة المحتوى الخاص بك إليها. لتكوين اللغات المستهدفة، قم بتعيين خاصية locale.targets في ملف i18n.json:

{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.10",
  "locale": {
    "source": "en",
    "targets": ["es"]
  },
  "buckets": {}
}

الخطوة 4. إنشاء المحتوى المصدر

إذا لم تقم بذلك بالفعل، قم بإنشاء ملف أو أكثر من ملفات Properties التي تحتوي على المحتوى المراد ترجمته. يجب أن تكون هذه الملفات موجودة في مسار يتضمن اللغة المصدر في مكان ما في المسار (مثل اسم دليل مثل en/ أو كجزء من اسم الملف مثل messages.en.properties).

الخطوة 5. إنشاء حاوية

  1. في ملف i18n.json، أضف كائن "properties" إلى كائن buckets:

    {
      "$schema": "https://lingo.dev/schema/i18n.json",
      "version": "1.10",
      "locale": {
        "source": "en",
        "targets": ["es"]
      },
      "buckets": {
        "properties": {}
      }
    }
    
  2. في كائن "properties"، حدد مصفوفة تحتوي على نمط include واحد أو أكثر:

    {
      "$schema": "https://lingo.dev/schema/i18n.json",
      "version": "1.10",
      "locale": {
        "source": "en",
        "targets": ["es"]
      },
      "buckets": {
        "properties": {
          "include": ["./[locale]/example.properties"]
        }
      }
    }
    

    تحدد هذه الأنماط الملفات التي سيتم ترجمتها.

    الأنماط نفسها:

    • يجب أن تحتوي على [locale] كعنصر نائب للغة المكونة
    • يمكن أن تشير إلى مسارات الملفات (مثل "[locale]/messages.properties")
    • يمكن استخدام علامات النجمة كعناصر نائبة عامة (مثل "[locale]/*.properties")

    أنماط glob المتكررة (مثل **/*.properties) غير مدعومة.

الخطوة 6. تكوين نموذج لغوي كبير (LLM)

تستخدم واجهة سطر أوامر Lingo.dev نماذج لغوية كبيرة (LLMs) لترجمة المحتوى باستخدام الذكاء الاصطناعي. لاستخدام أحد هذه النماذج، تحتاج إلى مفتاح API من مزود مدعوم.

للبدء بأسرع وقت ممكن، نوصي باستخدام Lingo.dev Engine — منصتنا المستضافة التي توفر 10,000 رمز من الاستخدام المجاني الشهري:

  1. قم بالتسجيل للحصول على حساب Lingo.dev.

  2. قم بتشغيل الأمر التالي:

    npx lingo.dev@latest login
    

    سيؤدي هذا إلى فتح متصفح الويب الافتراضي الخاص بك ويطلب منك المصادقة.

  3. اتبع التعليمات.

الخطوة 7. إنشاء الترجمات

في الدليل الذي يحتوي على ملف i18n.json، قم بتشغيل الأمر التالي:

npx lingo.dev@latest run

هذا الأمر:

  1. يقرأ ملف i18n.json.
  2. يجد الملفات التي تحتاج إلى ترجمة.
  3. يستخرج المحتوى القابل للترجمة من الملفات.
  4. يستخدم نموذج اللغة الكبير (LLM) المُكوّن لترجمة المحتوى المستخرج.
  5. يكتب المحتوى المترجم مرة أخرى إلى نظام الملفات.

عند إنشاء الترجمات لأول مرة، يتم إنشاء ملف i18n.lock. يحتفظ هذا الملف بسجل للمحتوى الذي تمت ترجمته، مما يمنع إعادة الترجمة غير الضرورية في عمليات التشغيل اللاحقة.

مثال

en/example.properties

app.title=MyApp
app.description=A simple demo application

user.greeting=Hello, world!
user.farewell=Thanks for using MyApp

error.message=Something went wrong
error.notFound=Page not found

database.host=localhost
database.port=5432

notification.success=Changes saved!
notification.warning=Please check your input

es/example.properties

app.title=MyApp
app.description=Una aplicación de demostración simple

user.greeting=¡Hola, mundo!
user.farewell=Gracias por usar MyApp

error.message=Algo salió mal
error.notFound=Página no encontrada

database.host=localhost
database.port=5432

notification.success=¡Cambios guardados!
notification.warning=Por favor verifica tu entrada

i18n.json

{
  "version": "1.10",
  "locale": {
    "source": "en",
    "targets": ["es"]
  },
  "buckets": {
    "properties": {
      "include": ["./[locale]/example.properties"]
    }
  },
  "$schema": "https://lingo.dev/schema/i18n.json"
}

i18n.lock

version: 1
checksums:
  2250baa513dddb2c691cb62115d5e257:
    app.title: 7dc70110429d46e3685f385bd2cc941c
    app.description: e13baa1e885129d9328e216ff534761b
    user.greeting: 0468579ef2fbc83c9d520c2f2f1c5059
    user.farewell: 118794a2b84f7bfb4b4ce602ed463b0f
    error.message: a3cd2f01c073f1f5ff436d4b132d39cf
    error.notFound: 97612e6230bc7a1ebd99380bf561b732
    database.host: da86e4fc0c04d82c87006dc71cea7e97
    notification.success: 3b7a8b0aa23977592d4270ea136a390c
    notification.warning: c38895f731311cefacee9e8d7d10fc49