i18n

ภาพหน้าจอของซอฟแวร์:
i18n
รายละเอียดซอฟแวร์:
รุ่น: 0.1
วันที่อัพโหลด: 14 Apr 15
ผู้พัฒนา: Antonio Cuni
การอนุญาต: ฟรี
ความนิยม: 17

Rating: 3.0/5 (Total Votes: 1)

i18n เป็นแพคเกจที่พยายามที่จะลดความซับซ้อนของกระบวนการทำงานและการพัฒนาโปรแกรมประยุกต์สากล & nbsp;. มันเป็นเสื้อคลุมบาง ๆ รอบเครื่องมือที่มีอยู่ใน gettext เฉพาะและบาเบล
การใช้งานขั้นพื้นฐาน
# demo.py
#
จากการนำเข้า i18n.translator นักแปล
supported_languages​​ = ['it_IT', 'fr_FR', 'de_DE']
# เปิดใช้งานการแปลภาษาอิตาเลียน
TR = แปล ('/ path / to / ราก', supported_languages​​ 'it_IT')
พิมพ์ TR ._ ('สวัสดีชาวโลก!')
ที่ / path / to / ราก / เป็นไดเรกทอรีรากของโครงการของคุณ เมื่อ instantiated ชั้นแปลโดยอัตโนมัติสร้างไดเรกทอรีที่เรียกว่า / path / to / ราก / ภาษาที่แปลจะถูกเก็บไว้
ข้อความสกัด
ก่อนที่จะทำการแปลที่เกิดขึ้นจริงที่คุณต้องดึงข้อความจากไฟล์ที่มาของคุณโดยการเรียกใช้คำสั่งสารสกัดจากโมดูล i18n ซึ่งเป็นสารสกัดจากห่อหุ้มรอบ pybabel และปรับปรุง pybabel:
& nbsp; หลาม -m i18n --root = / path / to / ราก --languages​​ = it_IT, fr_FR, de_DE สารสกัดจาก
สารสกัดจากดูข้อความทั้งหมดห่อภายในเรียกร้องให้ _ () gettext () หรือ ngettext () และผลิตไฟล์ที่เรียกว่าภาษา / template.pot นี่คือ PO gettext มาตรฐาน file` ซึ่งมีข้อความทั้งหมดที่พบในแอพลิเคชัน
นอกจากนี้สารสกัด () ยังสร้างแฟ้มแค็ตตาล็อกข้อความสำหรับแต่ละภาษาที่สนับสนุนเป็นภาษา / $ CODE / LC_MESSAGES / messages.po ที่ $ รหัสเป็นภาษาใดภาษาหนึ่งที่ระบุไว้ใน supported_languages​​ (it_IT, fr_FR และ de_DE ในตัวอย่างข้างต้น )
แฟ้มแค็ตตาล็อกตอนนี้พร้อมที่จะได้รับการแปลโดยใช้เครื่องมือที่มีอยู่จำนวนมากเช่น QT นักภาษาศาสตร์หรือ Poedit สำหรับการทำงานที่ถูกต้องของการประยุกต์ใช้ทั้งภาษา / ลำดับชั้นจะต้องมีการเก็บรักษาไว้ เราขอแนะนำให้ติดตามไฟล์ messages.po ต่าง ๆ ในรุ่นระบบควบคุมร่วมกับไฟล์อื่น ๆ ที่อยู่ในประเภทการประยุกต์ใช้
การปรับปรุงข้อความ
ในระหว่างการพัฒนาแอพลิเคชันของคุณก็จะเพิ่มข้อความใหม่ที่จะได้รับการแปล สารสกัดจากคำสั่งโดยอัตโนมัติจัดการกับกรณีนี้หากพบแฟ้มแค็ตตาล็อกที่มีอยู่เนื้อหาของพวกเขา (รวมถึงการแปลที่มีอยู่) จะถูกรวมกับข้อความสกัดใหม่
รวบรวมแคตตาล็อก
มันเป็นสิ่งจำเป็นที่จะรวบรวมแฟ้มแค็ตตาล็อกก่อนที่จะใช้พวกเขาด้วย gettext โดยค่าเริ่มต้นวัตถุนักแปลของเราจะรวบรวมแคตตาล็อกทั้งหมดที่พบในภาษา / การผลิตที่สอดคล้อง .mo ไฟล์ รวบรวมจะทำเฉพาะเมื่อแฟ้มแค็ตตาล็อกได้รับการแก้ไข ซึ่งหมายความว่าในกรณีส่วนใหญ่คุณไม่ต้องกังวลเกี่ยวกับการสะสมของแคตตาล็อก
ถ้าคุณต้องการที่จะมีการควบคุมมากขึ้นในขั้นตอนนี้คุณสามารถส่งผ่าน autocompile = เท็จในการสร้างของนักแปลและเรียบเรียงด้วยตนเองจากบรรทัดคำสั่ง:
& nbsp; หลาม -m i18n --root = / path / to / ราก --languages​​ = it_IT, fr_FR, de_DE รวบรวม
การจัดเก็บในฐานข้อมูลการแปล
สำหรับการใช้งานบางอย่างมันจะเป็นประโยชน์ที่จะให้ผู้ใช้สามารถกำหนดคำแปลใหม่และ / หรือแทนที่คนที่เริ่มต้น i18n สนับสนุนการใช้กรณีนี้กับชั้น DBTranslator ซึ่งเป็น subclass ของนักแปล เมื่อแปล DBTranslator แรกที่ปรากฏในฐานข้อมูล: ถ้าข้อความไม่พบผู้ได้รับมอบหมายไปยังพฤติกรรม gettext มาตรฐาน
DBTranslator จะขึ้นอยู่กับ sqlalchem​​y คอนสตรัคใช้เวลาเครื่องยนต์พารามิเตอร์เพิ่มเติม:
จากการนำเข้า i18n.dbtranslator DBTranslator
จากการนำเข้า sqlalchem​​y create_engine
เครื่องยนต์ = create_engine ('SQLite: ///db.sqlite')
ROOT = '/ path / to / ราก'
ภาษา = ['it_IT', 'fr_FR']
DEST_LANGUAGE = 'it_IT'
TR = DBTranslator (รากภาษา, DEST_LANGUAGE เครื่องยนต์เครื่องยนต์ =)
พิมพ์ TR ._ ("สวัสดีชาวโลก")
DBTranslator จะสร้าง translation_entries ตารางในฐานข้อมูล จากนั้นก็ขึ้นอยู่กับการประยุกต์ใช้เพื่อให้ส่วนติดต่อผู้ใช้ที่จะจัดการกับตาราง สำหรับการทดสอบคุณสามารถใช้ add_translation () วิธีการแทรกแปลใหม่ใน DB:
tr.add_translation ("it_IT", "สวัสดีชาวโลก", "Ciao Mondo")
พิมพ์ TR ._ ("สวัสดีชาวโลก") พิมพ์ # "Ciao Mondo"
วิธีการใช้งานนักแปลโลก
โดยการออกแบบ i18n พยายามที่จะหลีกเลี่ยงรัฐใด ๆ ทั่วโลก ซึ่งหมายความว่าคุณสามารถยกตัวอย่างนักแปลเป็​​นจำนวนมากและ DBTranslator ตามที่คุณต้องการแต่ละคนหมายถึงไดเรกทอรีที่แตกต่างกันและ / หรือฐานข้อมูล นี้จะเป็นประโยชน์โดยเฉพาะอย่างยิ่งสำหรับการทดสอบ
แต่ในทางปฏิบัติโครงการส่วนใหญ่ต้องการที่จะใช้นักแปลระดับโลกซึ่งรู้เกี่ยวกับข้อความของส่วนประกอบทั้งหมดในโครงการ การประยุกต์ใช้การสาธิตแสดงให้เห็นถึงวิธีการที่จะทำมันได้ในโมดูล translate.py:
นำเข้า PY
จากการนำเข้า i18n.translator นักแปล
# กำหนดรากของโครงการไปยังไดเรกทอรีที่มีไฟล์นี้
ROOT = py.path.local (__ __ ไฟล์). dirpath ()
ภาษา = ['it_IT', 'fr_FR', 'de_DE']
TR = แปล (รากภาษา 'it_IT')
_ = tr._
ngettext = tr.ngettext
ถ้า __name__ == '__main__'
& nbsp; tr.cmdline (sys.argv)
วิธีนี้ส่วนที่เหลือของการประยุกต์ใช้ก็สามารถนำเข้าและใช้ _ () และ ngettext () จาก translate.py หรืออย่างการตั้งค่าของคุณนำเข้าโดยตรงวัตถุ TR และการใช้ TR ._ () และ tr.ngettext () เพื่อแปลข้อความ
สองบรรทัดสุดท้ายของรหัสช่วยให้เป็นวิธีที่สะดวกในการโทรและรวบรวมสารสกัดจากบรรทัดคำสั่งโดยไม่ต้องระบุผบรากและภาษาที่สนับสนุนตนเอง เพียงแค่เรียกใช้:
& nbsp; translate.py หลามสารสกัด # ... หรือรวบรวม

ต้องการ

  • หลาม

ซอฟต์แวร์ที่คล้ายกัน

locales-test
locales-test

14 Apr 15

potpie
potpie

14 Apr 15

speaklater
speaklater

20 Feb 15

uim
uim

14 Apr 15

ซอฟแวร์อื่น ๆ ของนักพัฒนา Antonio Cuni

pdbpp
pdbpp

11 May 15

ความคิดเห็นที่ i18n

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!
ค้นหาตามหมวดหมู่