رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت و خواندن فایل زبان (po/mo)
#1
سلام وقت بخیر دوستان
با سرچ هایی که انجام دادم تقریبا متوجه شدم که این فایل ها رو چطوری بسازم ولی در اینکه بهترین نجوه خواندن (استفاده) از ترجمه ها چیه هنوز به نتیجه خاصی نرسیدم .
اگه کلاس یا فانکشنی در این زمینه دارید لطفا به اشتراک بزارید و نحوه کار رو هم با مثال بفرمایید .
اگه روش بهتری هم سراغ دارید لطفا معرفی کنید .
پیشاپیش سپاس از پاسختون Heart
پاسخ
تشکر شده توسط:
#2
لطفا تا جایی که خودتون فهمیدین رو قرار بدین اینجا، بقیشم انشاالله دوستان کمک میکنن.
پاسخ
تشکر شده توسط: sorkhabi
#3
نحوه ساخت فایل رو فهمیدم .
ولی برای خوندن نمیدونم چه روشی بهینه تر هست .
وردپرس هم برای زبان از این روش استفاده می کنه .
array بهینه تر نیست ؟
پاسخ
تشکر شده توسط:
#4
باید از کتابخانه GetText استفاده کنید: http://php.net/manual/en/book.gettext.php

این لینک رو ببینید: http://stackoverflow.com/questions/88020...ion-in-php
پاسخ
تشکر شده توسط: sorkhabi
#5
کار نمی کنه :
<?php
$language = 'fa';
potent("LANG=$language"); 
setlocale(LC_MESSAGES, $language );

// Set the text domain as 'messages'
$domain = 'one';
bindtextdomain($domain, "./locale");
textdomain($domain);

echo gettext('HELLO_WORLD');
یک فایل one.po در مسیر public_html/locale/fa ایجاد کردم با محتویات :
کد:
#Test token 1
msgid "HELLO_WORLD"
msgstr "salam"
ولی همون متن HELLO_WORLD چاپ میشه
پاسخ
تشکر شده توسط:
#6
مشکل از چی میتونه باشه ؟
پاسخ
تشکر شده توسط:
#7
معمولاً وقتی نمیتونه فایل ترجمه رو پیدا کنه، متن پیشفرض (انگلیسی) نمایش داده میشه. درخصوص سطح دسترسی پوشه ها و فایلها (اگه از لینوکس استفاده میکنید) بررسی کنید.
پاسخ
تشکر شده توسط: sorkhabi
#8
از پرمیشن هم نیست 777 گذاشتم همه چیز رو ولی باز اوکی نشد
آدرس locale رو هم به شکل های مختلف دادم باز کار نکرد .
پاسخ
تشکر شده توسط:
#9
محتوای فایلهای po. خودتون رو بگذارین.
پاسخ
تشکر شده توسط: sorkhabi
#10
تویه پست اول گذاشتم :
کد:
#Test token 1
msgid "HELLO_WORLD"
msgstr "salam"
پاسخ
تشکر شده توسط:
#11
یک سوال :
اگه با array درست کنم بهیته تر نیست ؟
پاسخ
تشکر شده توسط:
#12
راحتتره ولی نمیدونم این چرا کار نمیکنه.
پاسخ
تشکر شده توسط:
#13
راحتیش رو میدونم منظورم اینه کدوم بهینه تره
برای شما هم کار نمی کنه ؟
تم ویوور بدم یک نگاه بندازید ؟
پاسخ
تشکر شده توسط:
#14
نه برای منم کار نمیکنه. اینجا رو ببینید: https://bugs.php.net/bug.php?id=66265

گویا وابستگی زیادی به Locale های نصب شده روی سیستم داره. بنظرم کار با همون آرایه ها بهتر باشه. البته بحث مصرف حافظه هم هست و دقیقاً نمیدونم gettext کل فایل ترجمه رو میاره توی حافظه و بعد انتخاب میکنه یا توی فایل دنبال msgid میگرده و همون رو لود میکنه. بهرحال اگه اولی باشه با آرایه فرقی نداره و اگه دومی باشه هم پردازش سنگینتری خواهد داشت.
پاسخ
تشکر شده توسط:
#15
تو ویندوز برا منم کار نمیکنه!!!
توی آموزش های خارجی هم حرفی از Locale های نصب شده روی سیستم زده نشده بود. یا حتی اگه ربط داشته باشه تو ویندوز باید کار میکرد چون Locale نصب شده نداریم تو ویندوز که.
فایل mo رو هم دقیقا همونجا گذاشتم که گفته بود!
پاسخ
تشکر شده توسط:




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