çeviri ipuçları

Gettext (po) ile çeviri yaparken işinize yarayabilecek çeşitli ipuçları ile karşınızdayım efendim.

Evvela, çevirmenlerin korkulu rüyası, sıralama sorununa kalıcı bir çözüm getirelim. Malum İngilizce cümle yapısı ile Türkçe yapısı tamamen farklı olduğu için bazı durumlarda, devrik cümleler ile karşılaşabiliyoruz. Ancak devrik cümle yerine, değişkenleri sıra ile kullanabilmek mümkün. Misal:

There's only %s mb free space left on drive %s

ilk bakışta cümleye nasıl dalsam diye düşünüyor insan. Sonuçta %s değişkenlerinin yanlış kullanımı sonunda, bir karışıklık durumu söz konusu olabilir ve neticede üzücü olabilir. Ya da dalga konusu da olabilirsiniz. Gelelim, böyle bir durumda ne yapabileceğimize. Ecnebinin “order switching” dediği, güzel Türkçe’mizde ise “sıra değişimi” olarak geçen kavramı kullanabiliriz bu konuda. Şöyle ki:

%2$s diski üzerinde %1$s MB boş yer kaldı.

Gettext’in bize sunduğu bu nimet sayesinde, %s değişkenlerini sırası dahilinde istediğimiz düzene koyabiliyoruz. Ne kadar değişken (n tane diyelim) varsa %n şeklinde kullanmak mümkün yani. Yani esas cümledeki %s değişkeninin sırasını belirtmek suretiyle, cümleyi devrik bir hale getirmekten kaçınabiliyoruz.

Gelelim diğer bir ipucuna. Diyelim ki elinizde eski bir tr.po dosyası var ve güncellenmemiş. Pot (şablon) dosyasındaki dizgileri tek tek .po dosyamıza eklemektense, msgmerge aracını kullanarak, şablonda bulunup bizde bulunmayan cümleleri dil dosyamıza rahatça ekleyebiliyoruz:

msgmerge eski.po güncel.po > yeni.po

Komutu ile değişiklikleri ve eklenecek cümleleri otomatik ekleyebilirsiniz.

Bir de klavye kısayolları (menü accelerator) sorununa değinelim. Çok sayıda accelerator kullandık, kafamız allak bullak oldu, bunları doğru mu yaptık acaba? Nitekim birden fazla kısayol tanımlamış olabiliriz. Bunları test etmek için:

msgfmt --check --check-accelerators=_ -o /dev/null dosya.po

Bu komut farklı öğelere aynı kısayol atanmışsa sizi uyaracaktır. Böylece daha sağlıklı bir çeviri yapabilirsiniz.

Bir ipucu da Anıl Özbek‘ten geldi:
TS çeviri dosyalarını yerelleştirmek için Linguist kullanabilir. Eğer çeviri yapabileceğiniz bir şablon dosya yoksa, diğer diller için yapılmış yerelleştirmelerden bir şablon üretebilirsiniz. Örneğin aşağıdaki komutla var olan Almanca yerelleştirmeden sıfır (çeviri olan) bir Türkçe yerelleştirme dosyası üretilebilir:

lconvert –drop-translations yazılım_ismi_de.ts -o yazılım_ismi_tr.ts

Tabii, bunları öğrenmekle kalmayın, çeviri yapmak dile ve millete hizmet etmektir Wink.

5 Comments

Anıl ÖzbekJune 29th, 2009 at 11:44 am

Merhaba ipuçları için çok teşekkürler.

Nedense sıra değişiminin otomatik yapılacağı gibi yanlış bir düşünceye kapılmışım ben ve bu yüzden kim bilir ne kadar yanlış mesaj çevirmişimdir. Eskileri kontrol etmem gerekecek Smile

Yalnız ikinci ipucu bende çalışmıyor. Şu şekilde oluyor ama:
msgmerge eski.po guncel.po > yeni.po

ras0irJune 29th, 2009 at 11:50 am

Teşekkür ederim, yanlış yazmışım o kısmı, düzelttiğin için teşekkürler.

Anıl ÖzbekAugust 16th, 2009 at 2:08 pm

Tekrar merhaba, bu sayfayı yerimlerine ekledim, ihtiyacım oldukça bakıyorum Smile Yorum olarak birkaç ipucu da ben eklersem sizin için sakıncası olur mu acaba?

TS çeviri dosyalarını yerelleştirmek için Linguist kullanabilir. Eğer çeviri yapabileceğiniz bir şablon dosya yoksa, diğer diller için yapılmış yerelleştirmelerden bir şablon üretebilirsiniz. Örneğin aşağıdaki komutla var olan Almanca yerelleştirmeden sıfır (çeviri olan) bir Türkçe yerelleştirme dosyası üretilebilir:

lconvert –drop-translations yazılım_ismi_de.ts -o yazılım_ismi_tr.ts

ras0irAugust 16th, 2009 at 2:20 pm

Lafı mı olur, yazıya bile ekledim Smile, teşekkürler.

Anıl ÖzbekAugust 16th, 2009 at 7:02 pm

Teşekkür ederim Smile

Mozilla Firefox ile Launchpad gibi çevrimiçi çeviri uygulamaları kullanırken Zemberek’in tek satırlık küçük metin kutucuklarında da aktif olması için about:config’den layout.spellcheckDefault değeri 2 olarak ayarlanabilir.

http://i26.tinypic.com/3133rwg.jpg

Leave a comment

Your comment

Click to Insert Smiley

SmileBig SmileGrinLaughFrownBig FrownCryNeutralWinkKissRazzChicCoolAngryReally AngryConfusedQuestionThinkingPainShockYesNoLOLSillyBeautyLashesCuteShyBlushKissedIn LoveDroolGiggleSnickerHeh!SmirkWiltWeepIDKStruggleSide FrownDazedHypnotizedSweatEek!Roll EyesSarcasmDisdainSmugMoney MouthFoot in MouthShut MouthQuietShameBeat UpMeanEvil GrinGrit TeethShoutPissed OffReally PissedMad RazzDrunken RazzSickYawnSleepyDanceClapJumpHandshakeHigh FiveHug LeftHug RightKiss BlowKissingByeGo AwayCall MeOn the PhoneSecretMeetingWavingStopTime OutTalk to the HandLoserLyingDOH!Fingers CrossedWaitingSuspenseTremblePrayWorshipStarvingEatVictoryCurseAlienAngelClownCowboyCyclopsDevilDoctorFemale FighterMale FighterMohawkMusicNerdPartyPirateSkywalkerSnowmanSoldierVampireZombie KillerGhostSkeletonBunnyCatCat 2ChickChickenChicken 2CowCow 2DogDog 2DuckGoatHippoKoalaLionMonkeyMonkey 2MousePandaPigPig 2SheepSheep 2ReindeerSnailTigerTurtleBeerDrinkLiquorCoffeeCakePizzaWatermelonBowlPlateCanFemaleMaleHeartBroken HeartRoseDead RosePeaceYin YangUS FlagMoonStarSunCloudyRainThunderUmbrellaRainbowMusic NoteAirplaneCarIslandAnnouncebrbMailCellPhoneCameraFilmTVClockLampSearchCoinsComputerConsolePresentSoccerCloverPumpkinBombHammerKnifeHandcuffsPillPoopCigarette