2010-10-29 8 views
13

Tôi có tình huống sau:Làm cách nào để hợp nhất 2 tệp .POT (tệp dịch)

Một sản phẩm mà tôi muốn dịch, có hai trang web riêng biệt, một cho quản trị viên, một cho khách hàng.
Codebase là CakePHP.
Cả hai trang web hoàn toàn tách biệt với nhau, chúng là các trang web CakePHP hoàn chỉnh.
Và cả hai đều có rất nhiều điểm chung.

Vì vậy, với CakePHP tôi tạo tệp .pot cho mỗi trang web, nhưng tôi muốn cung cấp cho người dịch MỘT tệp, với các chuỗi duy nhất trong cả hai tệp .pot.

Họ sẽ trả lại một tệp .po với các chuỗi cho cả hai trang web và tôi sẽ chỉ sao chép cùng một tệp vào cả hai trang web, vì vậy tôi sẽ có tệp .po với các chuỗi phụ mà mã sẽ không sử dụng, nhưng đó không phải là một vấn đề.

Vì vậy, về cơ bản câu hỏi là ... Làm cách nào để hợp nhất hai tệp .pot?

  • Tôi cần tải tệp mới không có chuỗi trùng lặp.
  • Lý tưởng nhất, nó sẽ giữ (và cho chuỗi trùng lặp, nối thêm) các nhận xét trước mỗi chuỗi mà CakePHP thêm vào, chỉ định nơi chuỗi được tìm thấy, nhưng nếu điều này không được thực hiện, thì tốt, tôi có thể sống mà không có nó. (xem bên dưới để biết phần trích dẫn của tệp .pot để biết rõ điều này)

Bạn có biết bất kỳ công cụ nào để tôi làm điều này không? Tôi thực sự muốn tránh phải viết của riêng tôi.


Đây là những ý kiến ​​tôi đang nói về ở trên:

#: \controllers\accounts_controller.php:118 
#: \controllers\customer_documents_controller.php:75 
msgid "Parent Customer not specified" 
msgstr "" 

Trả lời

26

Ok, do đó công cụ để làm điều này là msgcat

msgcat *.pot > all.pot 

Nếu bạn đang ở trên Windows, cài đặt Cygwin, và chắc chắn rằng bạn có gói gettext-devel, bởi vì msgcat không nằm trong số gettext package thông thường.

+1

Cảm ơn bạn! ___________________________ –

+0

@ J.Pablo Fernández: bạn có thể plese đăng lệnh để sáp nhập. – 1355

+4

Trong trường hợp các tệp POT (trái ngược với các tệp PO), tôi cũng khuyên bạn nên sử dụng “--use-first”, không kết thúc với các công cụ không trùng lặp. – Gallaecio

-3

lệnh là:

msgcat inputfile1 inputfile2 ... > outpo 
+2

Tại sao lại là downvote? Câu trả lời của J. Pablo là tốt hơn, nhưng điều này không sai về mặt kỹ thuật hoặc gây nhầm lẫn – gregmac

+5

Tôi đoán việc giảm giá được thực hiện bởi vì câu trả lời này không có gì ngoài câu trả lời hiện có và câu trả lời này được thêm gần hai năm sau câu trả lời tốt hơn. –