@forge/api

6.4.1-next.0-experimental-90651456.4.1
~

Modified (5 files)

Index: package/out/api/i18n.js
===================================================================
--- package/out/api/i18n.js
+++ package/out/api/i18n.js
@@ -45,23 +45,33 @@
     translationsGetter.reset();
     translationsFunctionCache.clear();
 };
 exports.resetTranslationsCache = resetTranslationsCache;
-const getTranslations = async (locale, options = {
+const getTranslations = async (rawLocale, options = {
     fallback: true
 }) => {
+    const locale = doEnsureLocale(rawLocale);
     return await translationsGetter.getTranslations(locale, options);
 };
 exports.getTranslations = getTranslations;
-const createTranslationFunction = async (locale) => {
+const createTranslationFunction = async (rawLocale) => {
+    const locale = doEnsureLocale(rawLocale);
     let translator = translationsFunctionCache.get(locale);
     if (!translator) {
         translator = await createTranslationFunctionImpl(locale);
         translationsFunctionCache.set(locale, translator);
     }
     return translator;
 };
 exports.createTranslationFunction = createTranslationFunction;
+const doEnsureLocale = (rawLocale) => {
+    const ensuredLocale = (0, i18n_1.ensureLocale)(rawLocale);
+    if (!ensuredLocale) {
+        console.warn(`The locale "${rawLocale}" is not supported, defaulting to the default locale.`);
+        return rawLocale;
+    }
+    return ensuredLocale;
+};
 const createTranslationFunctionImpl = async (locale) => {
     const translator = new i18n_1.Translator(locale, translationsGetter);
     await translator.init();
     return (i18nKey, defaultValue) => translator.translate(i18nKey) ?? defaultValue ?? i18nKey;
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/api",
-  "version": "6.4.1-next.0-experimental-9065145",
+  "version": "6.4.1",
   "description": "Forge API methods",
   "author": "Atlassian",
   "license": "SEE LICENSE IN LICENSE.txt",
   "main": "out/index.js",
@@ -15,9 +15,9 @@
   "devDependencies": {
     "@atlassian/ari": "^2.199.0",
     "@atlassian/in-memory-metrics": "0.1.0",
     "@atlassian/metrics-interface": "4.0.0",
-    "@forge/runtime": "6.1.1",
+    "@forge/runtime": "6.1.2",
     "@types/node": "20.19.1",
     "@types/node-fetch": "^2.6.12",
     "expect-type": "^0.17.3",
     "express": "^4.18.3",
@@ -27,9 +27,9 @@
   "dependencies": {
     "@forge/auth": "0.0.9",
     "@forge/egress": "2.3.0",
     "@forge/i18n": "0.0.7",
-    "@forge/manifest": "^11.3.0-next.2-experimental-9065145",
+    "@forge/manifest": "^11.3.0",
     "@forge/storage": "2.0.3",
     "headers-utils": "^3.0.2",
     "minimatch": "^9.0.5"
   },
Index: package/out/api/i18n.d.ts.map
===================================================================
--- package/out/api/i18n.d.ts.map
+++ package/out/api/i18n.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/api/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAO3B,MAAM,aAAa,CAAC;AAmDrB,eAAO,MAAM,sBAAsB,QAAO,IAGzC,CAAC;AAEF,eAAO,MAAM,eAAe,WAClB,wBAAwB,YACvB,sBAAsB,KAG9B,QAAQ,qBAAqB,CAE/B,CAAC;AAUF,oBAAY,mBAAmB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AASrF,eAAO,MAAM,yBAAyB,WAAkB,wBAAwB,KAAG,QAAQ,mBAAmB,CAO7G,CAAC;AAQF,eAAO,MAAM,IAAI;wCAfuC,wBAAwB,KAAG,QAAQ,mBAAmB,CAAC;8BAzBrG,wBAAwB,YACvB,sBAAsB,KAG9B,QAAQ,qBAAqB,CAAC;CAuChC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/api/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAQ3B,MAAM,aAAa,CAAC;AAmDrB,eAAO,MAAM,sBAAsB,QAAO,IAGzC,CAAC;AAEF,eAAO,MAAM,eAAe,cACf,MAAM,YACR,sBAAsB,KAG9B,QAAQ,qBAAqB,CAG/B,CAAC;AAUF,oBAAY,mBAAmB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AASrF,eAAO,MAAM,yBAAyB,cAAqB,MAAM,KAAG,QAAQ,mBAAmB,CAQ9F,CAAC;AAkBF,eAAO,MAAM,IAAI;2CA1B0C,MAAM,KAAG,QAAQ,mBAAmB,CAAC;iCA1BnF,MAAM,YACR,sBAAsB,KAG9B,QAAQ,qBAAqB,CAAC;CAmDhC,CAAC"}
\ No newline at end of file
Index: package/CHANGELOG.md
===================================================================
--- package/CHANGELOG.md
+++ package/CHANGELOG.md
@@ -1,15 +1,23 @@
 # @forge/api
 
-## 6.4.1-next.0-experimental-9065145
+## 6.4.1
 
 ### Patch Changes
 
+- 6f348d9: Updated i18n.createTranslationFunction and i18n.getTranslations in @forge/api to automatically convert input locales to Forge supported locale codes when applicable. If an unsupported locale is provided, a warning will now be logged to the browser console.
 - Updated dependencies [c7544d8]
 - Updated dependencies [7c2186c]
 - Updated dependencies [0c3a0df]
-  - @forge/[email protected]
+- Updated dependencies [bb5cb57]
+  - @forge/[email protected]
 
+## 6.4.1-next.1
+
+### Patch Changes
+
+- 6f348d9: Updated i18n.createTranslationFunction and i18n.getTranslations in @forge/api to automatically convert input locales to Forge supported locale codes when applicable. If an unsupported locale is provided, a warning will now be logged to the browser console.
+
 ## 6.4.1-next.0
 
 ### Patch Changes
Index: package/out/api/i18n.d.ts
===================================================================
--- package/out/api/i18n.d.ts
+++ package/out/api/i18n.d.ts
@@ -1,10 +1,10 @@
-import { type ForgeSupportedLocaleCode, type GetTranslationsOptions, type GetTranslationsResult } from '@forge/i18n';
+import { type GetTranslationsOptions, type GetTranslationsResult } from '@forge/i18n';
 export declare const resetTranslationsCache: () => void;
-export declare const getTranslations: (locale: ForgeSupportedLocaleCode, options?: GetTranslationsOptions) => Promise<GetTranslationsResult>;
+export declare const getTranslations: (rawLocale: string, options?: GetTranslationsOptions) => Promise<GetTranslationsResult>;
 export declare type TranslationFunction = (i18nKey: string, defaultValue?: string) => string;
-export declare const createTranslationFunction: (locale: ForgeSupportedLocaleCode) => Promise<TranslationFunction>;
+export declare const createTranslationFunction: (rawLocale: string) => Promise<TranslationFunction>;
 export declare const i18n: {
-    createTranslationFunction: (locale: ForgeSupportedLocaleCode) => Promise<TranslationFunction>;
-    getTranslations: (locale: ForgeSupportedLocaleCode, options?: GetTranslationsOptions) => Promise<GetTranslationsResult>;
+    createTranslationFunction: (rawLocale: string) => Promise<TranslationFunction>;
+    getTranslations: (rawLocale: string, options?: GetTranslationsOptions) => Promise<GetTranslationsResult>;
 };
 //# sourceMappingURL=i18n.d.ts.map
\ No newline at end of file