وبلاگ شخصی مرتضی طلوع

ترجمه عبارات تلگرام

چهارشنبه, ۱۳ ارديبهشت ۱۳۹۶، ۰۹:۲۴ ق.ظ

یک فایل ترجمه از تلگرام پارسی کاری از اندروید سیتی گیر آوردم و استفاده کردم دیدم خیلی از عبارات رو نداره! چون مربوط به نسخه‌های قدیمی تلگرام می‌شد. ضمن اینکه همین مقدار رو هم کامل ترجمه نکرده بود.

یه مقدار دنبال فایل فارسی آخرین نسخه‌اش گشتم ولی متاسفانه نتونستم پیدا کنم. برای همین خودم دست به کار شدم.

اول فایل مربوط به آخرین نسخه انگلیسی رو از این پیدا کردم: لینک

دیدم نسبت عباراتش به اون فایل فارسی اولی حدود سه برابره! اون فایل فارسی ۵۰۰ خط داشت ولی این فایل انگلیسی ۱۵۰۰ خط. هر عبارت تقریبا تو یک خط قرار می‌گیره. بعد یک برنامه پایتون نوشتم که فایل ناقص فارسی رو با این فایل انگلیسی ترکیب کنه و تو یک فایل دیگه بریزه. یعنی اونهایی که ترجمه دارند از فایل فارسی و اون عباراتی که تو فایل فارسی نیستند از فایل انگلیسی آورده بشه. خروجی همون حدود ۱۵۰۰ خط فایل انگلیسی شد ولی کمتر از ۱/۳ ش ترجمه شده. (چون فایل ۵۰۰ خطی فارسی هم همه رو ترجمه نکرده بود). برنامه پایتون:

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 را بزنید

  • مرتضی طلوع

نظرات (۲)

بسیار عالی
ممنون
کاش ترجمش کامل بود
  • مرتضی طلوع
  • دیگه لازم نیست! چون خود تلگرام زبان فارسی رو اضافه کرده :D
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی