ترجمه عبارات تلگرام
یک فایل ترجمه از تلگرام پارسی کاری از اندروید سیتی گیر آوردم و استفاده کردم دیدم خیلی از عبارات رو نداره! چون مربوط به نسخههای قدیمی تلگرام میشد. ضمن اینکه همین مقدار رو هم کامل ترجمه نکرده بود.
یه مقدار دنبال فایل فارسی آخرین نسخهاش گشتم ولی متاسفانه نتونستم پیدا کنم. برای همین خودم دست به کار شدم.
دیدم نسبت عباراتش به اون فایل فارسی اولی حدود سه برابره! اون فایل فارسی ۵۰۰ خط داشت ولی این فایل انگلیسی ۱۵۰۰ خط. هر عبارت تقریبا تو یک خط قرار میگیره. بعد یک برنامه پایتون نوشتم که فایل ناقص فارسی رو با این فایل انگلیسی ترکیب کنه و تو یک فایل دیگه بریزه. یعنی اونهایی که ترجمه دارند از فایل فارسی و اون عباراتی که تو فایل فارسی نیستند از فایل انگلیسی آورده بشه. خروجی همون حدود ۱۵۰۰ خط فایل انگلیسی شد ولی کمتر از ۱/۳ ش ترجمه شده. (چون فایل ۵۰۰ خطی فارسی هم همه رو ترجمه نکرده بود). برنامه پایتون:
import re
english_file = 'Telegram-English-3.18.xml'
persian_file = 'Telegram-Farsi.xml'
output_file = 'Telegram-Persian-3.18-out.xml'
with open(persian_file) as f:
persian_lines = f.readlines()
with open(english_file) as f:
english_lines = f.readlines()
with open(output_file, 'w') as f:
for english_line in english_lines:
r = re.match('<string name="(?P<name>[a-zA-Z]+)">(?P<value>.+)</string>', english_line.strip())
if r:
name, value = r.groupdict()['name'], r.groupdict()['value']
persian_line = [i for i in filter(lambda k: '<string name="{}">'.format(name) in k, persian_lines)]
if persian_line:
persian_index = persian_lines.index(persian_line[0])
del persian_lines[persian_index]
f.write(persian_line[0])
else:
f.write(english_line)
else:
f.write(english_line)
print('\n'.join(persian_lines))
بعد این فایل خروجی رو به تلگرام دادم ولی متاسفانه خطا داشت! پس از کلی بالا و پایین کردن متوجه شدم که مشکل از اینه که بعضی از تگهای xml بسته نشده بودند! احتمالا این کد پایتونم یک ایرادی داره. اون چند تا تگ رو دستی درست کردم. همچنین چند تا از عبارات کاربردی رو هم ترجمه کردم و چند تا از ترجمههای قبلی رو هم تغییر دادم در نهایت شد این فایل:
فایل ترجمه تلگرام
حجم: 118 کیلوبایت
البته هنوز کامل نیست و جای کار داره خیلی.
برای استفاده از این فایل باید آن را در تلگرام خود دریافت کنید سپس از طریق منویی که در کنار فایل ظاهر میشود، گزینه Apply localization را بزنید
- ۹۶/۰۲/۱۳
ممنون
کاش ترجمش کامل بود