تخطي إلى المحتوى الرئيسي

ترجمة المحتوى (Hugo Markdown)

تترجم Rosetta ملفات Hugo Markdown — سواء حقول front matter أو محتوى النص — مع حماية كاملة لـ code blocks، و shortcodes، والعناصر المهيكلة.

الإعداد​

قم بتعيين contentDir في ملف التكوين (config) الخاص بك لتمكين ترجمة محتوى Markdown:

i18n-rosetta.config.json
{
"version": 3,
"inputLocale": "en",
"localesDir": "./i18n",
"contentDir": "./content"
}
npx i18n-rosetta sync # translates both string files and content files

ما الذي تتم ترجمته​

Front Matter​

يتم دعم محددات كل من YAML (---) و TOML (+++). افتراضياً، تتم ترجمة هذه الحقول:

  • title
  • description
  • summary
  • subtitle
  • caption
  • linkTitle

يتم الاحتفاظ بجميع الحقول الأخرى (date، draft، tags، weight، slug، إلخ) كما هي. يمكنك التخصيص باستخدام translatableFields في ملف التكوين الخاص بك.

محتوى النص​

تتم ترجمة نص Markdown بالكامل مع حماية الكتل — حيث يتم حجب العناصر المهيكلة باستخدام عناصر نائبة من نوع Unicode قبل الترجمة واستعادتها بعدها.

حماية الكتل​

تمر هذه العناصر عبر الترجمة دون المساس بها:

العنصرالمثالالحماية
Code blocks```js ... ```حجب الكتلة بالكامل
Inline code`variable`محجوب
Hugo shortcodes{{< figure >}}, {{% note %}}حجب الكتلة بالكامل
Raw HTML<div>, <table>محجوب
الروابط (URLs)[text](https://...)الاحتفاظ بالرابط (URL)، وترجمة النص
Interpolation{{ .Count }}محجوب

اصطلاح تسمية الملفات​

يتبع نمط الترجمة حسب اسم الملف الخاص بـ Hugo:

my-post.md → my-post.fr.md
my-post.en.md → my-post.fr.md (strips source suffix)

سلوك التخطي​

لا يتم أبداً الكتابة فوق الملفات المترجمة الموجودة مسبقاً. إذا كان my-post.fr.md موجوداً بالفعل، فسيتم تخطيه. احذف الملف المستهدف لفرض إعادة الترجمة.

الطرق الخاصة بـ Markdown فقط​

:::warning Google Translate و Markdown ليس لدى Google Translate أي إدراك لـ code blocks، أو shortcodes، أو متغيرات interpolation. سيؤدي ذلك إلى إتلاف محتوى Markdown المهيكل. استخدم طرق LLM (llm أو llm-coached) لترجمة المحتوى — فهي تحجب العناصر المهيكلة بشكل صريح. :::

عندما تنتقل ترجمة المحتوى احتياطياً من Google Translate إلى إحدى طرق LLM، تسجل rosetta تحذيراً يوضح السبب.