diff --git a/README.md b/README.md
index d2affa36db..8183ef1c42 100755
--- a/README.md
+++ b/README.md
@@ -32,6 +32,7 @@ List of Definitions
* [AmCharts](http://www.amcharts.com/) (by [Covobonomo](https://github.com/covobonomo/))
* [AngularJS](http://angularjs.org) (by [Diego Vilar](https://github.com/diegovilar)) ([wiki](https://github.com/borisyankov/DefinitelyTyped/wiki/AngularJS-Definitions-Usage-Notes))
* [AngularUI](http://angular-ui.github.io/) (by [Michel Salib](https://github.com/michelsalib))
+* [Angular Translate](http://pascalprecht.github.io/angular-translate/) (by [Michel Salib](https://github.com/michelsalib))
* [Angular UI Bootstrap](http://angular-ui.github.io/bootstrap) (by [Brian Surowiec](https://github.com/xt0rted))
* [AppFramework](http://app-framework-software.intel.com/) (by [Kyo Ago](https://github.com/kyo-ago))
* [Arbiter](http://arbiterjs.com/) (by [Arash Shakery](https://github.com/arash16))
diff --git a/angular-translate/angular-translate-tests.ts b/angular-translate/angular-translate-tests.ts
new file mode 100644
index 0000000000..7cb6c89c38
--- /dev/null
+++ b/angular-translate/angular-translate-tests.ts
@@ -0,0 +1,25 @@
+///
+
+var app = angular.module('at', ['pascalprecht.translate']);
+
+app.config(($translateProvider: ng.translate.ITranslateProvider) => {
+ $translateProvider.translations('en', {
+ TITLE: 'Hello',
+ FOO: 'This is a paragraph.',
+ BUTTON_LANG_EN: 'english',
+ BUTTON_LANG_DE: 'german'
+ });
+ $translateProvider.translations('de', {
+ TITLE: 'Hallo',
+ FOO: 'Dies ist ein Paragraph.',
+ BUTTON_LANG_EN: 'englisch',
+ BUTTON_LANG_DE: 'deutsch'
+ });
+ $translateProvider.preferredLanguage('en');
+});
+
+app.controller('Ctrl', ($scope: ng.IScope, $translate: ng.translate.ITranslateService) => {
+ $scope['changeLanguage'] = function (key: any) {
+ $translate.uses(key);
+ };
+});
diff --git a/angular-translate/angular-translate.d.ts b/angular-translate/angular-translate.d.ts
new file mode 100644
index 0000000000..aac4a74126
--- /dev/null
+++ b/angular-translate/angular-translate.d.ts
@@ -0,0 +1,63 @@
+// Type definitions for Angular Translate (pascalprecht.translate module)
+// Project: https://github.com/PascalPrecht/angular-translate
+// Definitions by: Michel Salib
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module ng.translate {
+ interface ITranslationTable {
+ [key: string]: string;
+ }
+
+ interface IStorage {
+ get(name: string): string;
+ set(name: string, value: string): void;
+ }
+
+ interface ISTaticFilesLoaderOptions {
+ prefix: string;
+ suffix: string;
+ key?: string;
+ }
+
+ interface ITranslateService {
+ (key: string, ...params: string[]): string;
+ fallbackLanguage(): string;
+ preferredLanguage(): string;
+ proposedLanguage(): string;
+ refresh(lankKey: string): ng.IPromise;
+ storage(): IStorage;
+ storageKey(): string;
+ uses(): string;
+ uses(key: string): ng.IPromise;
+ }
+
+ interface ITranslateProvider extends ng.IServiceProvider {
+ translations(key: string, translationTable: ITranslationTable): ITranslateProvider;
+ addInterpolation(factory: any): ITranslateProvider;
+ useMessageFormatInterpolation(): ITranslateProvider;
+ useInterpolation(factory: string): ITranslateProvider;
+ preferredLanguage(): string;
+ preferredLanguage(language: string): ITranslateProvider;
+ translationNotFoundIndicator(indicator: string): ITranslateProvider;
+ translationNotFoundIndicatorLeft(): string;
+ translationNotFoundIndicatorLeft(indicator: string): ITranslateProvider;
+ translationNotFoundIndicatorRight(): string;
+ translationNotFoundIndicatorRight(indicator: string): ITranslateProvider;
+ fallbackLanguage(): string;
+ fallbackLanguage(language: string): ITranslateProvider;
+ uses(): string;
+ uses(key: string): ITranslateProvider;
+ useUrlLoader(url: string): ITranslateProvider;
+ useStaticFilesLoader(options: ISTaticFilesLoaderOptions): ITranslateProvider;
+ useLoader(loaderFactory: string, options: any): ITranslateProvider;
+ useLocalStorage(): ITranslateProvider;
+ useCookieStorage(): ITranslateProvider;
+ useStorage(storageFactory: any): ITranslateProvider;
+ storagePrefix(): string;
+ storagePrefix(prefix: string): ITranslateProvider;
+ useMissingTranslationHandlerLog(): ITranslateProvider;
+ useMissingTranslationHandler(factory: string): ITranslateProvider;
+ }
+}