Mo dosyasından Po dosyası oluşturalım

Bazen çevrilmiş yazılımların varolan çevirilerini direk kurulu sistemde düzenlemek gerekebiliyor.

Aslında bu işlem sıkıcı, çünkü sisteminizi bozmanız mümkün. Yine de ben göçertmesem sen göçertmesen virüs içermeyen bu sistemi kim göçertecek.

Hadi birlikte bir deneme yapalım.

Sistemdeki varolan bir çeviri dosyasını değiştirelim.

Sistemdeki gnome-shell.mo dosyasının Türkçe derlenmiş dosyası nerede tutuluyormuş /usr/ dizininde arayarak bulalım.

sudo find /usr/ -type f -name "gnome-shell.mo" | grep /tr/

Aşağıdaki konumda tutuluyormuş.

/usr/share/locale/tr/LC_MESSAGES/gnome-shell.mo

Dosyayı ev dizinimize kopyalayalım.

sudo cp /usr/share/locale/tr/LC_MESSAGES/gnome-shell.mo ~/gnome-shell.mo

Şimdi mo dosyasını po dosyasına çevirmek için aşağıdaki komutu giriyoruz.

msgunfmt ~/gnome-shell.mo -o ~/gnome-shell.po

Artık çevirileri uygun gördüğümüz bir araç ile düzenleyebiliriz. Ben PoEdit kullandığım için onun ile düzenliyorum. PoEdit ile Mo dosyaları oluşturmak mümkün. Bunun yerine komut satırı kullanacağım. Amaç zaten kodları öğrenmek.

Eldeki dosyanın üstüne yazmadan çıktımızı üretiyoruz.

LC_ALL=C msgfmt ~/gnome-shell.po -o ~/edited-gnome-shell.mo

Çevirdiğimiz dosyayı artık sistemimize kopyalayabiliriz.

sudo mv ~/edited-gnome-shell.mo /usr/share/locale/tr/LC_MESSAGES/gnome-shell.mo 

Programımızı yeniden başlattığımızda çevirilerin etkinleştiğini görebiliriz. Bu durumda GNOME Shell örneği olduğu için oturumu kapatmak veya bilgisayarı yeniden başlatmak gerekebilir.

Sonrasında bakalım ne kadar ağlayacağız.

msfgmt ve msgunfmt komutları gettext paketinin bir parçası. Bu paketi kurmamız gerekecektir.

Kaynakça:
– https://docs.oracle.com/cd/E19462-01/820-2238/gextu/index.html
– man belgeleri: LC_ALL=C msgfmt
– man belgeleri: LC_ALL=C msgunfmt

Leave a Reply

Your email address will not be published. Required fields are marked *