31
Hi there! my name is Sebastian I’m working at Mayflower and I’m doing a lot of JavaScript, writing and talking

Angular translate

Embed Size (px)

DESCRIPTION

Translate your angular application with angular translate by Pascal Precht. It's a module consisting of filters, services and directives for translating various strings.

Citation preview

Page 1: Angular translate

Hi there!

my name is Sebastian

I’m working at Mayflower

and I’m doing a lot of JavaScript, writing and talking

Page 2: Angular translate

翻訳

Page 3: Angular translate

?

Page 4: Angular translate

Translation

Page 5: Angular translate

Translation in

Page 6: Angular translate

with

Page 7: Angular translate

How do I get this?

bower install angular-translate

Page 8: Angular translate

Anyone here not using

Bower?

Page 9: Angular translate

Use it!

Page 10: Angular translate

How do I include this in my App?

Page 11: Angular translate

How do I include this in my App?

1. Load the Script!

<script src="angular-translate.js"></script>

Page 12: Angular translate

How do I include this in my App?

2. Include it into your module!

var app = angular.module('translate', [‘pascalprecht.translate']);

Page 13: Angular translate

How do I include this in my App?

3. Configure it!

app.config(function($translateProvider) {! $translateProvider.translations('es', {! HELLO: '¡Hola'! });! $translateProvider.preferredLanguage(‘es’);! $translateProvider.fallbackLanguage(‘en’);!});

Page 14: Angular translate

How do I include this in my App?

4. Include the translate filter in your templates!

<h1>{{ 'HELLO' | translate }} {{ name }}</h1>

Page 15: Angular translate

DONE!

Page 16: Angular translate

Change the language?

Page 17: Angular translate

Change the language?

1. Some buttons with ng-click!

<button ng-click="translate('de')">deutsch</button>!<button ng-click="translate('en')">english</button>!<button ng-click="translate('es')">español</button>!<button ng-click="translate('jp')">日本の</button>

Page 18: Angular translate

Change the language?

2. The $translate-Service in the controller!

app.controller('contentCtrl', ['$scope', '$translate', function($scope, $translate) {

Page 19: Angular translate

Change the language?

3. Translate it!

$scope.translate = function(lang) {! $translate.use(lang);!}

Page 20: Angular translate

DONE!

Page 21: Angular translate

What happens, if I don’t have a translation?

Uhm… actually nothing… !

The original string is displayed

Page 22: Angular translate

Translations in my source?

Page 23: Angular translate

Translations in my source?

define([‘angular', ‘translations/de‘], function(angular, transEs) {!! …! app.config(function($translateProvider) {! $translateProvider.translations('es', transEs);! $translateProvider.preferredLanguage('es');! }); ! …!});!

require.js to the rescue

Page 24: Angular translate

Features?

Page 25: Angular translate

Translate Service

app.controller(‘myCtrl’, [‘$scope’, ‘$translate’, function($scope, $translate) {! $translate(‘HELLO’)! .then(function(hello) {! $scope.hello = hello;! });!}]);

Page 26: Angular translate

Translate Directive

<div translate>HELLO</div>!<div translate=“HELLO”></div>!<div translate>{{ “HELLO” }}</div>!<div translate=“{{ ‘HELLO’ }}></div>

Page 27: Angular translate

Variables in Translations{! HELLO: “Hello {{username}}”!}

$translate(‘HELLO’, {username: ‘World’});

{{ ‘HELLO’ | translate: ‘{username: “World”}’ }}

<div translate=“HELLO”! translate-values=“{username: ‘World’}”></

div>

Page 28: Angular translate

Pluralizationbower install angular-translate-interpolation-

messageformat

$translateProvider.useMessageFormatInterpolation();

<script src=“messageformat.js”></script>!<script src=“locale/es.js”></script>!<script src=“angular-translate-interpolation-messageformat”></script>

Page 29: Angular translate

Pluralization

{! LIKE: '{GENDER, select, male{He} female{She} other{They}} liked this.'!}

{{ ‘LIKE’ | translate: “{GENDER: ‘male’}” }}!{{ ‘LIKE’ | translate: “{GENDER: ‘female’}” }}

Page 30: Angular translate

Thank you!

Page 31: Angular translate

KONTAKT

Sebastian Springer [email protected] !Mayflower GmbH Mannhardtstr. 6 80538 München Deutschland !@basti_springer !https://github.com/sspringer82