diff --git a/jest.config.js b/jest.config.js
index 9bb382d5..e2cda5c5 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -8,7 +8,7 @@ module.exports = {
'ts-jest', {
tsconfig: 'tests/tsconfig.json',
},
- ]
+ ],
},
transformIgnorePatterns: [],
}
diff --git a/lib/date.ts b/lib/date.ts
index f616431a..3b671e3a 100644
--- a/lib/date.ts
+++ b/lib/date.ts
@@ -1,6 +1,6 @@
///
-declare var window: Nextcloud.v24.WindowWithGlobals
+declare let window: Nextcloud.v24.WindowWithGlobals
/**
* Get the first day of the week
diff --git a/lib/index.ts b/lib/index.ts
index 47f95811..9086de37 100644
--- a/lib/index.ts
+++ b/lib/index.ts
@@ -1,12 +1,11 @@
/**
* This module provides all functions for the `OC.L10N` namespace
- *
+ *
* @packageDocumentation
* @module @nextcloud/l10n
* @example
* ```js
import { translate as t, translatePlural as n } from '@nextcloud/l10n'
-
console.log(t('my-app', 'Hello {name}', { name: 'J. Doe' }));
const count = 2;
console.warn(n('my-app', 'Got an error', 'Got multiple errors', 2));
diff --git a/lib/registry.ts b/lib/registry.ts
index 7a86bd38..979d1228 100644
--- a/lib/registry.ts
+++ b/lib/registry.ts
@@ -1,7 +1,7 @@
export type Translations = Record
export type PluralFunction = (number: number) => number
-declare var window: {
+declare let window: {
_oc_l10n_registry_translations: Record
_oc_l10n_registry_plural_functions: Record
}
@@ -13,18 +13,20 @@ interface AppTranslations {
/**
* Check if translations and plural function are set for given app
+ *
* @param {string} appId the app id
* @return {boolean}
*/
export function hasAppTranslations(appId: string) {
return (
- window._oc_l10n_registry_translations?.[appId] !== undefined &&
- window._oc_l10n_registry_plural_functions?.[appId] !== undefined
+ window._oc_l10n_registry_translations?.[appId] !== undefined
+ && window._oc_l10n_registry_plural_functions?.[appId] !== undefined
)
}
/**
* Register new, or extend available, translations for an app
+ *
* @param {string} appId the app id
* @param {object} translations the translations list
* @param {Function} pluralFunction the plural function
@@ -43,6 +45,7 @@ export function registerAppTranslations(
/**
* Unregister all translations and plural function for given app
+ *
* @param {string} appId the app id
*/
export function unregisterAppTranslations(appId: string) {
@@ -52,13 +55,14 @@ export function unregisterAppTranslations(appId: string) {
/**
* Get translations bundle for given app and current locale
+ *
* @param {string} appId the app id
* @return {object}
*/
export function getAppTranslations(appId: string): AppTranslations {
if (
- typeof window._oc_l10n_registry_translations === 'undefined' ||
- typeof window._oc_l10n_registry_plural_functions === 'undefined'
+ typeof window._oc_l10n_registry_translations === 'undefined'
+ || typeof window._oc_l10n_registry_plural_functions === 'undefined'
) {
console.warn('No OC L10N registry found')
return {
@@ -75,6 +79,7 @@ export function getAppTranslations(appId: string): AppTranslations {
/**
* Set new translations and plural function for an app
+ *
* @param {string} appId the app id
* @param {object} translations the translations list
* @param {Function} pluralFunction the plural function
@@ -90,6 +95,7 @@ function setAppTranslations(
/**
* Extend translations for an app
+ *
* @param {string} appId the app id
* @param {object} translations the translations list
* @param {Function} [pluralFunction] the plural function (will override old value if given)
diff --git a/lib/translation.ts b/lib/translation.ts
index 72e7feb9..1554f9bb 100644
--- a/lib/translation.ts
+++ b/lib/translation.ts
@@ -98,11 +98,9 @@ export function translate(
* @param {string} textSingular the string to translate for exactly one object
* @param {string} textPlural the string to translate for n objects
* @param {number} number number to determine whether to use singular or plural
- * @param {Object} vars of placeholder key to value
+ * @param {object} vars of placeholder key to value
* @param {object} options options object
- * @return {string}
*/
-
export function translatePlural(
app: string,
textSingular: string,
@@ -156,17 +154,14 @@ export function loadTranslations(appName: string, callback: (...args: any[]) =>
}>((resolve, reject) => {
const request = new XMLHttpRequest()
request.open('GET', url, false)
- request.onerror = (event) => {
- reject({ status: request.status, statusText: request.statusText })
+ request.onerror = () => {
+ reject(new Error(request.statusText))
}
- request.onload = (event) => {
+ request.onload = () => {
if (request.status >= 200 && request.status < 300) {
resolve(JSON.parse(request.responseText))
} else {
- reject({
- status: request.status,
- statusText: request.statusText,
- })
+ reject(new Error(request.statusText))
}
}
request.send()
@@ -186,7 +181,7 @@ export function loadTranslations(appName: string, callback: (...args: any[]) =>
* Register an app's translation bundle.
*
* @param {string} appName name of the app
- * @param {object} bundle translation bundle
+ * @param {Object} bundle translation bundle
*/
export function register(appName: string, bundle: Translations) {
registerAppTranslations(appName, bundle, getPlural)
@@ -225,187 +220,187 @@ export function getPlural(number: number) {
* Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
*/
switch (language) {
- case 'az':
- case 'bo':
- case 'dz':
- case 'id':
- case 'ja':
- case 'jv':
- case 'ka':
- case 'km':
- case 'kn':
- case 'ko':
- case 'ms':
- case 'th':
- case 'tr':
- case 'vi':
- case 'zh':
- return 0
-
- case 'af':
- case 'bn':
- case 'bg':
- case 'ca':
- case 'da':
- case 'de':
- case 'el':
- case 'en':
- case 'eo':
- case 'es':
- case 'et':
- case 'eu':
- case 'fa':
- case 'fi':
- case 'fo':
- case 'fur':
- case 'fy':
- case 'gl':
- case 'gu':
- case 'ha':
- case 'he':
- case 'hu':
- case 'is':
- case 'it':
- case 'ku':
- case 'lb':
- case 'ml':
- case 'mn':
- case 'mr':
- case 'nah':
- case 'nb':
- case 'ne':
- case 'nl':
- case 'nn':
- case 'no':
- case 'oc':
- case 'om':
- case 'or':
- case 'pa':
- case 'pap':
- case 'ps':
- case 'pt':
- case 'so':
- case 'sq':
- case 'sv':
- case 'sw':
- case 'ta':
- case 'te':
- case 'tk':
- case 'ur':
- case 'zu':
- return number === 1 ? 0 : 1
-
- case 'am':
- case 'bh':
- case 'fil':
- case 'fr':
- case 'gun':
- case 'hi':
- case 'hy':
- case 'ln':
- case 'mg':
- case 'nso':
- case 'xbr':
- case 'ti':
- case 'wa':
- return number === 0 || number === 1 ? 0 : 1
-
- case 'be':
- case 'bs':
- case 'hr':
- case 'ru':
- case 'sh':
- case 'sr':
- case 'uk':
- return number % 10 === 1 && number % 100 !== 11
- ? 0
- : number % 10 >= 2 &&
- number % 10 <= 4 &&
- (number % 100 < 10 || number % 100 >= 20)
+ case 'az':
+ case 'bo':
+ case 'dz':
+ case 'id':
+ case 'ja':
+ case 'jv':
+ case 'ka':
+ case 'km':
+ case 'kn':
+ case 'ko':
+ case 'ms':
+ case 'th':
+ case 'tr':
+ case 'vi':
+ case 'zh':
+ return 0
+
+ case 'af':
+ case 'bn':
+ case 'bg':
+ case 'ca':
+ case 'da':
+ case 'de':
+ case 'el':
+ case 'en':
+ case 'eo':
+ case 'es':
+ case 'et':
+ case 'eu':
+ case 'fa':
+ case 'fi':
+ case 'fo':
+ case 'fur':
+ case 'fy':
+ case 'gl':
+ case 'gu':
+ case 'ha':
+ case 'he':
+ case 'hu':
+ case 'is':
+ case 'it':
+ case 'ku':
+ case 'lb':
+ case 'ml':
+ case 'mn':
+ case 'mr':
+ case 'nah':
+ case 'nb':
+ case 'ne':
+ case 'nl':
+ case 'nn':
+ case 'no':
+ case 'oc':
+ case 'om':
+ case 'or':
+ case 'pa':
+ case 'pap':
+ case 'ps':
+ case 'pt':
+ case 'so':
+ case 'sq':
+ case 'sv':
+ case 'sw':
+ case 'ta':
+ case 'te':
+ case 'tk':
+ case 'ur':
+ case 'zu':
+ return number === 1 ? 0 : 1
+
+ case 'am':
+ case 'bh':
+ case 'fil':
+ case 'fr':
+ case 'gun':
+ case 'hi':
+ case 'hy':
+ case 'ln':
+ case 'mg':
+ case 'nso':
+ case 'xbr':
+ case 'ti':
+ case 'wa':
+ return number === 0 || number === 1 ? 0 : 1
+
+ case 'be':
+ case 'bs':
+ case 'hr':
+ case 'ru':
+ case 'sh':
+ case 'sr':
+ case 'uk':
+ return number % 10 === 1 && number % 100 !== 11
+ ? 0
+ : number % 10 >= 2
+ && number % 10 <= 4
+ && (number % 100 < 10 || number % 100 >= 20)
? 1
: 2
- case 'cs':
- case 'sk':
- return number === 1 ? 0 : number >= 2 && number <= 4 ? 1 : 2
+ case 'cs':
+ case 'sk':
+ return number === 1 ? 0 : number >= 2 && number <= 4 ? 1 : 2
- case 'ga':
- return number === 1 ? 0 : number === 2 ? 1 : 2
+ case 'ga':
+ return number === 1 ? 0 : number === 2 ? 1 : 2
- case 'lt':
- return number % 10 === 1 && number % 100 !== 11
- ? 0
- : number % 10 >= 2 && (number % 100 < 10 || number % 100 >= 20)
+ case 'lt':
+ return number % 10 === 1 && number % 100 !== 11
+ ? 0
+ : number % 10 >= 2 && (number % 100 < 10 || number % 100 >= 20)
? 1
: 2
- case 'sl':
- return number % 100 === 1
- ? 0
- : number % 100 === 2
+ case 'sl':
+ return number % 100 === 1
+ ? 0
+ : number % 100 === 2
? 1
: number % 100 === 3 || number % 100 === 4
- ? 2
- : 3
+ ? 2
+ : 3
- case 'mk':
- return number % 10 === 1 ? 0 : 1
+ case 'mk':
+ return number % 10 === 1 ? 0 : 1
- case 'mt':
- return number === 1
- ? 0
- : number === 0 || (number % 100 > 1 && number % 100 < 11)
+ case 'mt':
+ return number === 1
+ ? 0
+ : number === 0 || (number % 100 > 1 && number % 100 < 11)
? 1
: number % 100 > 10 && number % 100 < 20
- ? 2
- : 3
+ ? 2
+ : 3
- case 'lv':
- return number === 0
- ? 0
- : number % 10 === 1 && number % 100 !== 11
+ case 'lv':
+ return number === 0
+ ? 0
+ : number % 10 === 1 && number % 100 !== 11
? 1
: 2
- case 'pl':
- return number === 1
- ? 0
- : number % 10 >= 2 &&
- number % 10 <= 4 &&
- (number % 100 < 12 || number % 100 > 14)
+ case 'pl':
+ return number === 1
+ ? 0
+ : number % 10 >= 2
+ && number % 10 <= 4
+ && (number % 100 < 12 || number % 100 > 14)
? 1
: 2
- case 'cy':
- return number === 1
- ? 0
- : number === 2
+ case 'cy':
+ return number === 1
+ ? 0
+ : number === 2
? 1
: number === 8 || number === 11
- ? 2
- : 3
+ ? 2
+ : 3
- case 'ro':
- return number === 1
- ? 0
- : number === 0 || (number % 100 > 0 && number % 100 < 20)
+ case 'ro':
+ return number === 1
+ ? 0
+ : number === 0 || (number % 100 > 0 && number % 100 < 20)
? 1
: 2
- case 'ar':
- return number === 0
- ? 0
- : number === 1
+ case 'ar':
+ return number === 0
+ ? 0
+ : number === 1
? 1
: number === 2
- ? 2
- : number % 100 >= 3 && number % 100 <= 10
- ? 3
- : number % 100 >= 11 && number % 100 <= 99
- ? 4
- : 5
-
- default:
- return 0
+ ? 2
+ : number % 100 >= 3 && number % 100 <= 10
+ ? 3
+ : number % 100 >= 11 && number % 100 <= 99
+ ? 4
+ : 5
+
+ default:
+ return 0
}
}
diff --git a/rollup.config.mjs b/rollup.config.mjs
index 3acbd176..44917bb4 100644
--- a/rollup.config.mjs
+++ b/rollup.config.mjs
@@ -1,8 +1,8 @@
import typescript from '@rollup/plugin-typescript'
-import { createRequire } from 'node:module';
+import { createRequire } from 'node:module'
-const require = createRequire(import.meta.url);
-const pkg = require('./package.json');
+const require = createRequire(import.meta.url)
+const pkg = require('./package.json')
const external = [...Object.keys(pkg.dependencies)]
@@ -33,5 +33,5 @@ export default [
config('./lib/gettext.ts', {
file: 'dist/gettext.js',
format: 'cjs',
- })
+ }),
]