Ana içeriğe atla

AngularJS - Angular-Translate Kullanımı

Angular-Translate Kullanımı adlı bu konuda web sitelerinin nasıl çoklu dil desteği sağlandığını anlatacağım. Cok dil destekli web siteler adlı makalemde web sitelerine nasıl çok dil desteği sağlanacağını anlatmıştım. Burada ise bu yöntemlerden bir tanesi olan Angular Translate anlatılacaktır.
Web sitenizde framework olarak AngularJS kullandıysanız ve sitenize çoklu dil desteği eklemek istiyorsanız doğru yerdesiniz. AngularJS kullanmadıysanız da, sunduğu avantajlardan dolayı, çoklu dil desteği için en ideal ve profesyonel çözüm Angular Translate kullanmaktır. Aşağıdakileri adımları uygulayarak çok kısa sürede web sitenize çoklu dil desteği vermiş olacaksınız.

Hadi başlayalım...
İlk Önce gerekli paketleri indirelim.
Angular Translate Kütüphanesi buradan indirebilirsiniz.
Dil dosyalarını statik dosyalardan, yani json dosyalarından çağırmak için  buradaki kütüphaneyi indirebilirsiniz
Eğer tercüme verilerini, dilin hatırlanması için seçili dilin Cookilerde tutmak isterseniz buradan angular-translate'nin sağladığı Cookie kütüphanesini buradan indirebilirsiniz.

Bundan sonra kendi site klasör yapınıza göre bu kütüphaneleri web sitenizin bulunduğu dizinlere ekleyin. Son bir işlem ise index.html dosyasına angular-translate kütüphanelerinin ekleme sırasıdır. Siz buradaki sıralamayı kullanarak, kütüphaneleri kendi klasör yapınıza uygun olarak ekleyebilirsiniz. Birdaha belirtmek istiyorum ki bu sadece kütüphane açısınıdan bağımlılıkların giderilmesi için kütüphanelerin doğru kullanım sıralamasıdır.


<script src="library/js/angular.min.js"></script>
<script src="library/js/angular-cookies.min.js"></script>
<script src="library/js/angular-route.min.js"></script>
<script src="library/js/angular-translate/angular-translate.min.js"></script>
<script src="library/js/angular-translate/angular-translate-loader-static-files.min.js"></script>
<script src="library/js/angular-translate/angular-translate-storage-cookie.min.js"></script>

Bundan sonra angular-translateyi modül yapımıza ekleyebiliriz.Bunun için aşağıdaki kodları kullanabilirsiniz.

var myApp = angular.module('myApp', [
    'ngRoute',
    'ngCookies',
    'pascalprecht.translate',
    'ui.bootstrap'
]);

Burada angular translate için olan module "pascalprecht.translate" dir.


Bir diğer önemli olan nokta, tercüme verilerini nasıl çağıracağınız. İdeal ve profesyonel çözümler için her dil dosyasını ayrı-ayrı klasörde tutmak önerilir. Buradaki yapıda da bunun üzerine kuruludur. Örneğin türkçe ve ingilizce is dilleriniz "dildosyalari" diye klasör açın buraya locale-tr, locale-en diye iki tane json dosyası ekleyin.

Bundan sonra aşağıdaki yapıyı kullanarak dil dosyalarını çağırabilirsiniz.Aynı zamanda aşağıdaki kod yapınızda cookie ayarları da vardır.

myApp.config(['$translateProvider', function ($translateProvider) {

    $translateProvider.useStaticFilesLoader({
        prefix: '../dildosyalari/locale-',
        suffix: '.json'
    });
    $translateProvider.preferredLanguage('en');
    $translateProvider.useCookieStorage();
}]);

Bundan sonra tek bir işlem kaldı. O da dil butonları için controller eklemek. Aşağıdaki kod yapısını kullnarak bu işlemi yapabilirsiniz.


myApp.controller('langController', function ($scope, $translate) {

    $scope.switchLanguage = function (languageKey) {
        $translate.use(languageKey);
    };
});

İşte bu kadar... Angular Translate ile, web sitenizin çok dil desteği için gerekli altyapıyı kurmuş olduk. Bundan sonra önemli olan diğer nokta bu altyapıyı kullanmaktır. Bunun için de yapmanız gereken iki işlem var. Bunlarda birinci dil butonları, diğeri tercüme değişkenlerinin html veta javascript içinde tanımlanması ve bu değişkenlerin dil dosyalarında tutulmasıdır.


Dil Butonları için aşağıdaki yapıyı kullanabilirsiniz. Burada birçok dil için örnek verdim.


<button class="language-single-button" ng-click="switchLanguage('az')">AZ <img src="assets/flag/Azerbaijan.png" class="img-responsive" /></button>
<button class="language-single-button" ng-click="switchLanguage('tr')">TR <img src="assets/flag/Turkey.png" class="img-responsive" /></button>
<button class="language-single-button" ng-click="switchLanguage('en')">EN <img src="assets/flag/England.png" class="img-responsive" /></button>
<button class="language-single-button" ng-click="switchLanguage('ru')">RU <img src="assets/flag/Russia.png" class="img-responsive" /></button>
<button class="language-single-button" ng-click="switchLanguage('fr')">FR <img src="assets/flag/France.png" class="img-responsive" /></button>
<button class="language-single-button" ng-click="switchLanguage('es')">ES <img src="assets/flag/Spain.png" class="img-responsive" /></button>

Diğer önemli husus ise html içinde Angular Translate nasıl kullanılacak. Bunun için örneğin menu yapınız aşağıdaki şekilde olabilir. Burada da iki yapı kullanabilirsiniz. Directiveler ve filterler. Benim tercihim aşağıdaki gibi filterlerden yana.


<ul class="nav navbar-nav custom-menu">

     <li><a href="#/main" class="custom-menu-item">{{"ld_homepage" | translate}}</a></li>
     <li><a href="#/lahij" class="custom-menu-item">{{"ld_lahic" | translate}}</a></li>
     <li><a href="#/service" class="custom-menu-item">{{"ld_service" | translate}}</a></li>
     <li><a href="#/aboutus" class="custom-menu-item">{{"ld_aboutus" | translate}}</a></li>
     <li><a href="#/contact" class="custom-menu-item">{{"ld_contact" | translate}}</a></li>
</ul>

En son ise değişkenlerimizi json dosyaramıza ekliyoruz. Yukarıdaki menülere göre aşağıdaki gibi bir yapı olacaktır. Sadece türkçe sayfası için örneği veriyorum. Siz aynı değişkenleri, diğer dil dosyalarında da oluşturup tercüme edebilirsiniz.


locale-tr içinde

{
  "ld_homepage": "Anasayfa",
  "ld_lahic": "Lahıc",
  "ld_service": "Hizmetler",
  "ld_aboutus": "Hakkımızda",
  "ld_contact": "İletişim"
}

İşte Bu Kadar....Kolay Gelsin

Sorularınız olursa lütfen sormaktan çekinmeyin.

Yorumlar

  1. Hazır proje dosyalarını zipleyip verebilirmisiniz

    YanıtlaSil
    Yanıtlar
    1. Hazır proje kodlarını dropbox üzerinden paylaştım.

      https://www.dropbox.com/s/1yqccuwhat7wvx3/Angular-translate-ornek-proje.zip?dl=0

      Blogger dosya paylaşımı için bir kolaylık sunmadığı için dropbox adresinden projeyi alabilirsiniz. Üye değilseniz üyelik gerektiriyor...

      Sil
  2. Bu .xmb /.xtb dosyaları çevirmek istiyorsanız, bu online yazılımını kullanabilirsiniz: https://poeditor.com/

    YanıtlaSil
    Yanıtlar
    1. poeditor gettext yöntemi için kullanılan editördür. Angularjs ile translate kullanımı için buna gerek yok. Direk json dosyası içinde tercüme etmeniz yeterli

      Sil

Yorum Gönder

Bu blogdaki popüler yayınlar

Medyan (Ortanca) Nedir? Nasıl Hesaplanır? Nerelerde Kullanılır?

Medyan işlemi olasılık hesaplamalarında sıkça kullanılan bir sayı dizisinin ortalamasını hesaplamak için alternatif yöntemlerden bir tanesidir. Ortanca medyan işleminin diğer adıdır. Matematiksel olarak medyan işlemi bir sayı dizisi küçükten büyüğe sıralayarak ortada kalan elemanı medyan değeri olarak belirleme işlemidir. Örnek verecek olursak: 2, 1, 5, 4, 5, 1, 2, 3, 5 serisi sıralanırsa 1, 1, 2, 2, 3, 4, 5, 5, 5 serisi elde edilir. Bu seri 9 elemanlı olduğundan ortadaki, yani 5. eleman (medyan) olacaktır. 5. eleman 3 sayısıdır. Yani ortanca değeri 3'dür Eleman sayısı tek sayı olan bir seride medyan değerin sırasının hesaplaması şu şekilde formüle edilir. Medyanın Sırası = (Eleman Sayısı + 1) / 2 Bu formülü yukarıdaki örneği uygulayacak olursak; Medyanın Sırası = (9 + 1) / 2 = 5 Veri serisi eleman sayısı bir çift sayı ise bu durumda serinin 2 medyanı olacaktır. Örneğin 2, 1, 5, 4, 5, 1, 2, 3, 5, 4 serisi sıralandığında 1, 1, 2, 2, 3, 4, 4, 5, 5, 5 s

Ağaçlar Kireçle veya Badana İle Neden Boyanır?

Ağaçlar kireçle boyanmasının veya badana yapılmasının hem çevreye hem de doğaya, ağaçlara faydası var. Bu makalede bu geleneği enine boyuna tartışmaya çalıştık. Ağaca zarar veren mikrop ve bakterileri öldürür. Ağacı çok aşarı soğuk havalarda ve çok aşırı sıcak havalarda korur. Ağacın çürümesini ve kurtlanmasını önler. Ağacın gövdesinin alabileceği zararları en az düzeyde düşürmeyi sağlar. Hoş, güzel, hijyenik, temiz pırıl pırıl bir görüntü oluşturur. Ayrıca çok sıcak havalarda da ağacı yanmaya karşı korumak. En büyük etkisi soğuk havalarda ağacı don vurmalarına karşı korumak . Küresel ısınma göz önüne alındığında mevsim değişiklikleri ani don, ani ısı artışları ve azalışları sonucunun doğuracağı etkenler için yararlı etkin bir yöntem. Gövdeden obur dalların çıkmasını azaltmak için sürülür. Kireçleme ağaçları güneş yanığından korumak için yapılıyor. Ağaçlar da güneşten yanabiliyorlar. Bu arada odun dokudaki gözenekleri doldurarak kapattığı için, zararlıların yuv

Azərbaycan Dilində Vurğu Qəbul Etmeyen Şekilçiler

Sözlərdə hecalardan birinin digərlərinə nisbətən daha qüvvətli deyilməsinə heca vurğusu deyilir. Üzərinə vurğu düşən hecaya isə vurğulu heca deyilir. Azərbaycan dilində vurğu adətən söz sonuna düşür. Söz şəkilçi qəbul ederkən vurğu adətən şəkilçinin üzərinə keçir. Məsələn: çiç ə k - çiçəkl ə r - çiçəklərd ə n məkt ə b - məktəbl i - məktəblil ə r - məktəblilərd ə n Buna baxmayaraq dilimizdə bir sıra şəkilçilər var ki onlar vurğu qebul etmirlər. Bu məqalədə Azərbaycan dilində vurğu qebul etməyən şəkilçilər incələnəcək ve bu şekilçilərin hansı hallarda vurğu qebul edib hansı hallarda vurğu qebul etmediyi araşdırılacaqdır. Eyni zamanda bildirmək istəyirəm ki vurğu ilə bağlı daha geniş və ətraflı məlumat üçün Azərbaycan Dilində Vurğunun Praktik Məsələləri adlı məqaləyə də nəzər yetirə bilərsiniz.  1. İsimlərdəki şəxs(xəbərlik) şəkilçiləri Məsələn: müəli'məm müəli'msən müəli'mdir müəli'mik müəli'msiniz müəli'mdirlər Qeyd: -dır4