رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چند زبانه کردن قسمتهای غیراستاندارد برنامه (اندروید)
#1
میدونید که روش استاندارد چند زبانه کردن در اندروید با استفاده از فایل strings.xml است.
مثلا وقتی زبان انگلیسی باشه رشته های داخل برنامه از فایل strings.xml واقع در دایرکتوری res/values خونده میشن، ولی وقتی زبان فارسی باشه رشته ها از فایل strings.xml واقع در دایرکتوری res/values-fa خونده میشن.
روش درج این رشته ها در برنامه رو هم که میدونید به این شکل هست که از ‎@string/string_name استفاده میکنیم و در کد جاوا هم میتونیم از getResources().getString(R.string.string_name)‎ استفاده کنیم.

اما وقتی رشته های ما در جای دیگری باشن چطور؟

مثلا برنامهء من اینترفیس تحت مرورگر داره، یعنی از طریق مرورگر وب روی PC با برنامهء روی گوشی ارتباط برقرار میکنیم. بنابراین برنامه یکسری کد HTML رو به مرورگر ارسال میکنه.

حالا سوال اینه که بنظرتون چه روشی برای چند زبانه کردن این اینترفیس های HTML مناسبه؟
چون ما که نمیتونیم در این صفحات HTML (که من توی پوشهء raw ذخیره کردمشون) از ‎@string/string_name استفاده کنیم.
البته من تست کردم یک پوشهء raw-fa هم اگر ایجاد کنیم، اونوقت وقتی زبان فارسی هست بطور خودکار فایلهای HTML موجود در این پوشه بجای اونایی که توی raw هستن خونده میشن؛ دقیقا مثل values و values-fa. ولی من نمیخوام از کل هر فایل HTML دو نسخه یکی به زبان انگلیسی و دیگری به زبان فارسی داشته باشم، چون این روش افزونگی بیش از حد داره بنظرم و تغییرات و نگهداری برنامه رو مشکل میکنه.

یه فکری که الان بنظرم میرسه اینه که فقط رشته ها رو بصورت متغییرهای جاوااسکریپت در فایلهای js که توی پوشهء raw و raw-fa میذارم ذخیره کنم و بعد در هر فایل HTML، این فایل js مربوط به رشته ها رو لود میکنم و توسط جاوااسکریپت رشته ها رو هرکدام در جای خودشون در سورس HTML قرار میدم.
شاید تنها اشکالی که بشه به این روش گرفته وابسته بودنش به جاوااسکریپت هست، اما بنظرم این امروزه دیگه مسئله ای نیست و ساپورت جاوااسکریپت امروزه جزو امکانات پایه برای خیلی سایتها و نرم افزارها محسوب میشه و دیگه گذشت دورانی که بگیم باید برنامه بدون جاوااسکریپت هم قابل استفاده باشه.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان