لینکی که میفرستی یک زبان است
کپی، تلگرام و ایکس فقط نشانی همین صفحه را میفرستند. og:locale برابر fa_IR یا en_US است و hreflang زبان مقابل فقط با وجود فایل جفت نوشته میشود.
اشتراک در این سایت یک نشانی است. زیر نوشته، ردیفی سه راه برای دادنش میگذارد: کپی لینک، نشانی اشتراک تلگرام، یا قصد ارسال در ایکس. هر سه همان صفحهای را میبرند که باز است. فارسی مسیر /fa/ است و انگلیسی مسیر /en/. این فایل نسخهی فارسی است. فایل انگلیسی همین نامک را در src/content/blog/en دارد و نشانیاش جداست.
نشانی متعارف خود صفحه است شرح بلندتر همان قرارداد است. این یادداشت روی لحظهی فرستادن میماند: چه رشتهای از مرورگر بیرون میرود، و سرصفحه پیش از آن دربارهی زبان چه گفته است.
ردیف از همین نشانی استفاده میکند
دکمهی کپی location.href را مینویسد. این همان نشانی نوار است. اگر از لنگر یک عنوان آمده باشی، قطعه هنوز هست و دکمه آن را نگه میدارد. لنگر کنار عنوانها کپی باریکتری است. نشانی جاری را میگیرد، هر قطعه را برمیدارد، و قطعهی همان عنوان را میچسباند. دکمهی اشتراک این برش را نمیکند. بخشی که تا آن پایین آمدهای میتواند با پیام برود.
تلگرام و ایکس نوار را نمیخوانند. href آنها وقت ساخت صفحه نوشته میشود. pageUrl همان postUrl این نوشته است، مطلقشده با مبدأ https://mh-honarvar.github.io. برای همین صفحه مسیر /fa/blog/sharing-in-two-languages/ است. عنوان در پارامتر text میرود. در آن پرسوجو نشانی دومی برای فایل انگلیسی نیست. لینک صفحهی نوشتن را در سایت مقابل باز میکند. خودش منتشر نمیکند و دنبال ترجمه نمیگردد.
ردیف لینک نامه ندارد. SITE.email خالی است و پاپیچ هم نامه چاپ نمیکند. تماس عمومی در صفحهی همکاری تلگرام است، @MH759. آن نشانی برای نوشتن به من است. قصد اشتراک برای دادن همین URL به دیگری است. در پاپیچ و در نوشته کنار هماند فقط از این جهت که هر دو لینکاند. کارشان یکی نیست.
سرصفحه چه را حاضر است بگوید
Base.astro مقدار og:locale را از مسیر میگیرد. در صفحهی فارسی fa_IR است و در صفحهی انگلیسی en_US. این برچسب برای صفحهای نوشته میشود که جلوی توست. منتظر جفت نمیماند. نوشتهای با یک زبان هم محلی خودش را نام میبرد.
og:url مسیر جاری است، مطلقشده با مبدأ سایت. برای نوشته، og:type برابر article است. مسیر تصویر در این سمت /og/fa/ بهاضافهی نامک است و در سمت دیگر /og/en/ بهاضافهی نامک. نشانهگذاری به تصویر زبان همان نشانی اشاره میکند. canonical همان نشانی جاری است. فارسی لینک متعارف را به انگلیسی نمیدهد و انگلیسی هم به فارسی نمیدهد.
hreflang ادعایی کوچکتر از og:locale است. اگر صفحه noindex نباشد، سرصفحه hreflang خود صفحه را دارد: اینجا fa-IR و در مسیر انگلیسی en-US. زبان مقابل و x-default فقط وقتی اضافه میشوند که alternate روشن باشد. برای نوشته این پرچم hasTwin است. getStaticPaths نامکهای زبان دیگر را جمع میکند. hasTwin یعنی این نامک در آن مجموعه باشد. فایل غایب جفت نیست. عوض کردن /fa/ با /en/ در یک رشته، وقتی فایل دوم نوشته نشده، جفت نمیسازد.
وقتی جفت هست، x-default به نشانی فارسی همان جفت اشاره میکند. از صفحهی فارسی این خود صفحه است. از صفحهی انگلیسی altPath است، همان نامک زیر /fa/blog/. og:locale:alternate همان پرچم را دارد: en_US در صفحهی فارسیِ جفتدار، و fa_IR در صفحهی انگلیسیِ جفتدار. وقتی alternate خاموش است این دو برچسب نمیآیند. og:locale زبانی که باز کردهای میماند.
دکمهی زبان در سرصفحه قطعهی جداست. همیشه رسم میشود. با جفت، href آن ترجمه است و hreflang خودش از فارسی en-US را میگوید و از انگلیسی fa-IR را. بیجفت، altPath فهرست وبلاگ زبان دیگر است و alternate خاموش است، پس سرصفحه ترجمهای را اعلام نمیکند. دکمه هنوز جایی مفید میرود: فهرست نوشتههای زبان مقابل.
این فایل جفت دارد
این یادداشت و فایل انگلیسی نامک sharing-in-two-languages را مشترک دارند، پس پرچم روشن است. همین برای نقشهی HTML صفحهای برای خواندن است و حداکثر سه نوشته با برچسب مشترک هم صادق است. هر موضوع دو فایل مارکداون است. فرستادن نشانی فارسی سند فارسی را میفرستد. جملهی انگلیسی /en/blog/ بهاضافهی همان نامک است، با اسلش پایانی.
برچسبهای این نوشته دوزبانه و فارسی است. برچسب برای فهرست مرتبط و برای بایگانی برچسب است. hreflang نیست. بایگانی وقتی به ترجمه لینک میدهد که tagIndexable در src/lib/tags.ts هر دو سو راست باشد: نام در tagPairs باشد، مقدمه یکتا و دستکم دو جمله باشد، و نوشتههای آن برچسب دستکم دو تا باشند و هنوز از کل وبلاگ همان زبان کمتر. جفت خود نوشته منتظر این تابع نمیماند. جفت همان نامک مشترک است و این دو فایل همین حالا آن را دارند.
زبان مقابل سند دیگری است
جهت با سند میآید، نه بهصورت اشارهای داخل رشتهی مشترک که سایت مقابل مجبور باشد رعایت کند. صفحهی فارسی lang="fa-IR" و dir="rtl" است. صفحهی انگلیسی lang="en-US" و dir="ltr" است. این ویژگیها برای مسیری نوشته شدهاند که ساخته شده. کسی که لینک فارسی را باز کند ستون فارسی، پشتهی قلم فارسی، و خوراک فارسی را میگیرد: /fa/rss.xml. خوراک انگلیسی /en/rss.xml است. هر خوراک نوشتههای زبان خودش را فهرست میکند.
رابط فارسی و راستبهچپ یادداشتهای همان مسیر را جمع میکند، از جمله یادداشت نشانی متعارف. نقشه فهرست گروهبندیشده است وقتی بخواهی راه بروی بهجای آنکه یک نوشته بفرستی. صفحهی نقشه alternate را نمیفرستد، پس پیشفرض چیدمان روشن میماند و هم /fa/map/ صفحه است هم /en/map/. نوشتهی وبلاگ این جفت را فقط وقتی میگیرد که فایل دوم وجود داشته باشد. حداکثر سه نوشته با برچسب مشترک بلوک زیر نوشته است و آن هم فقط همزبان است. جفت انگلیسی را به این صفحهی فارسی نمیچسباند.
نشانی داخل پیام همان زبانی است که انتخاب کردهای. زبان مقابل نشانی خودش را دارد. سرصفحه آن نشانی را وقتی نام میبرد که فایل جفت باشد، و og:locale زبان همان نشانی را میگوید که واقعاً فرستادهای.