Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(i18n): add bn translation #1092

Merged
merged 4 commits into from
Oct 20, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion frontend/elements/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -570,6 +570,7 @@ Translations are currently available for the following languages:
- "de" - German
- "en" - English
- "fr" - French
- "bn" - Bengali

You can import them individually:

Expand All @@ -582,6 +583,7 @@ import { de } from "@teamhanko/hanko-elements/i18n/de";
import { en } from "@teamhanko/hanko-elements/i18n/en";
import { fr } from "@teamhanko/hanko-elements/i18n/fr";
import { zh } from "@teamhanko/hanko-elements/i18n/zh";
import { bn } from "@teamhanko/hanko-elements/i18n/bn";
```

Or import all translations at once:
Expand All @@ -593,7 +595,7 @@ import { all } from "@teamhanko/hanko-elements/i18n/all";
After importing, provide the translations through the `register()` function:

```typescript
register("https://hanko.yourdomain.com", { translations: { de, en, fr, zh } });
register("https://hanko.yourdomain.com", { translations: { de, en, fr, zh, bn } });

// or

Expand Down
8 changes: 8 additions & 0 deletions frontend/elements/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
"i18n/zh": [
"dist/i18n/zh.d.ts"
],
"i18n/bn":[
"dist/i18n/bn.d.ts"
],
"i18n/all": [
"dist/i18n/all.d.ts"
]
Expand Down Expand Up @@ -60,6 +63,11 @@
"import": "./dist/i18n/zh.js",
"require": "./dist/i18n/zh.js"
},
"./i18n/bn": {
"types": "./dist/i18n/bn.d.ts",
"import": "./dist/i18n/bn.js",
"require": "./dist/i18n/bn.js"
},
"./i18n/all": {
"types": "./dist/i18n/all.d.ts",
"import": "./dist/i18n/all.js",
Expand Down
3 changes: 2 additions & 1 deletion frontend/elements/src/i18n/all.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ import { de } from "./de";
import { en } from "./en";
import { fr } from "./fr";
import { zh } from "./zh";
export const all: Translations = { de, en, fr, zh };
import { bn } from "./bn";
export const all: Translations = { de, en, fr, zh, bn };
123 changes: 123 additions & 0 deletions frontend/elements/src/i18n/bn.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
import { Translation } from "./translations";

export const en: Translation = {
heysagnik marked this conversation as resolved.
Show resolved Hide resolved
headlines: {
error: "একটি ত্রুটি উৎপন্ন হয়েছে",
loginEmail: "সাইন ইন করুন অথবা নিবন্ধন করুন",
loginEmailNoSignup: "সাইন ইন",
loginFinished: "সফল লগইন",
loginPasscode: "পাসকোড দিন",
loginPassword: "পাসওয়ার্ড লিখুন",
registerAuthenticator: "একটি পাসকি তৈরি করুন",
registerConfirm: "অ্যাকাউন্ট তৈরি করুন",
registerPassword: "নতুন পাসওয়ার্ড সেট করুন",
profileEmails: "ইমেইল",
profilePassword: "পাসওয়ার্ড",
profilePasskeys: "পাসকি",
isPrimaryEmail: "প্রাথমিক ইমেইল",
setPrimaryEmail: "প্রাথমিক ইমেল সেট করুন",
emailVerified: "যাচাইকৃত ",
emailUnverified: "অযাচাইকৃত",
emailDelete: "মুছে ফেলা",
renamePasskey: "পাসকির নাম পরিবর্তন করুন",
deletePasskey: "পাসকি মুছুন",
lastUsedAt: "শেষবার ব্যবহার করা হয়েছে",
createdAt: "এ নির্মিত",
connectedAccounts: "সংযুক্ত অ্যাকাউন্ট",
deleteAccount: "অ্যাকাউন্ট মুছে ফেলুন",
accountNotFound: "অ্যাকাউন্ট পাওয়া যাচ্ছে না",
},
texts: {
enterPasscode: 'যে পাসকোডটি পাঠানো হয়েছিল "{emailAddress}" এ তা লিখুন.',
setupPasskey:
"একটি পাসকি দিয়ে সহজে এবং নিরাপদে আপনার অ্যাকাউন্টে সাইন ইন করুন। দ্রষ্টব্য: আপনার বায়োমেট্রিক ডেটা শুধুমাত্র আপনার ডিভাইসে সংরক্ষিত থাকে এবং কখনই কারো সাথে শেয়ার করা হবে না।",
createAccount:
'"{emailAddress}"-এর জন্য কোনো অ্যাকাউন্ট বিদ্যমান নেই। আপনি একটি নতুন অ্যাকাউন্ট তৈরি করতে চান?',
passwordFormatHint:
"{minLength} এবং {maxLength} অক্ষরের মধ্যে হতে হবে।",
manageEmails:
"পাসকোড প্রমাণীকরণের জন্য ব্যবহৃত হয়।",
changePassword: "একটি নতুন পাসওয়ার্ড সেট করুন।",
managePasskeys: "আপনার পাসকিগুলি আপনাকে এই অ্যাকাউন্টে সাইন ইন করতে দেয়৷",
isPrimaryEmail:
"এই ইমেলটি আপনার পাসকিগুলির জন্য ব্যবহারকারীর নাম হিসাবে ব্যবহার করা হবে৷",
setPrimaryEmail:
"নতুন পাসকিগুলির জন্য ব্যবহারকারীর নাম হিসাবে ব্যবহার করার জন্য এই ইমেলটি সেট করুন৷",
emailVerified: "এই ইমেল ঠিকানা যাচাই করা হয়েছে.",
emailUnverified: "এই ইমেল ঠিকানা যাচাই করা হয়নি.",
emailDelete:
"আপনি এই ইমেল ঠিকানা মুছে ফেললে, এটি আর সাইন ইন করতে ব্যবহার করা যাবে না.",
emailDeleteThirdPartyConnection:
"আপনি এই ইমেল ঠিকানা মুছে ফেললে, এটি আর সাইন ইন করতে ব্যবহার করা যাবে না.",
emailDeletePrimary:
"প্রাথমিক ইমেল ঠিকানা মুছে ফেলা যাবে না.",
renamePasskey:
"পাসকির জন্য একটি নাম সেট করুন।",
deletePasskey:
"আপনার অ্যাকাউন্ট থেকে এই পাসকি মুছুন.",
deleteAccount:
"আপনি কি এই অ্যাকাউন্টটি মুছে ফেলার বিষয়ে নিশ্চিত? সমস্ত ডেটা অবিলম্বে মুছে ফেলা হবে এবং পুনরুদ্ধার করা যাবে না।",
noAccountExists:
'"{emailAddress}"-এর জন্য কোনো অ্যাকাউন্ট বিদ্যমান নেই।',
},
labels: {
or: "বা",
no: "না",
yes: "হ্যাঁ",
email: "ইমেইল",
continue: "চালিয়ে যান",
skip: "এড়িয়ে যান",
save: "সংরক্ষণ",
password: "পাসওয়ার্ড",
signInPassword: "একটি পাসওয়ার্ড দিয়ে সাইন ইন",
signInPasscode: "একটি পাসকোড দিয়ে সাইন ইন করুন",
forgotYourPassword: "আপনি কি পাসওয়ার্ড ভুলে গেছেন?",
back: "পেছনে",
signInPasskey: "একটি পাসকি দিয়ে সাইন ইন করুন",
registerAuthenticator: "একটি পাসকি তৈরি করুন",
signIn: "সাইন ইন করুন",
signUp: "সাইন আপ",
sendNewPasscode: "নতুন কোড পাঠান",
passwordRetryAfter: "{passwordRetryAfter} এ আবার চেষ্টা করুন",
passcodeResendAfter: "{passcodeResendAfter} এ একটি নতুন কোডের অনুরোধ করুন",
unverifiedEmail: "অযাচাইকৃত",
primaryEmail: "প্রাথমিক",
setAsPrimaryEmail: "প্রাথমিক হিসাবে সেট করুন",
verify: "যাচাই করুন",
delete: "মুছুন",
newEmailAddress: "নতুন ইমেইল ঠিকানা",
newPassword: "নতুন পাসওয়ার্ড",
rename: "নাম পরিবর্তন করুন",
newPasskeyName: "নতুন পাসকি নাম",
addEmail: "ইমেল যোগ করুন",
changePassword: "পাসওয়ার্ড পরিবর্তন করুন",
createPasskey: "একটি পাসকি তৈরি করুন",
webauthnUnsupported: "পাসকিগুলি আপনার ব্রাউজার দ্বারা সমর্থিত নয়৷",
signInWith: "{provider} দিয়ে সাইন ইন করুন",
deleteAccount: "হ্যাঁ, এই অ্যাকাউন্টটি মুছুন.",
},
errors: {
somethingWentWrong:
"একটি প্রযুক্তিগত ত্রুটি ঘটেছে. অনুগ্রহ করে একটু পরে আবার চেষ্টা করুন.",
requestTimeout: "অনুরোধ সময় শেষ হয়েছে.",
invalidPassword: "ভুল ইমেইল বা পাসওয়ার্ড।",
invalidPasscode: "দেওয়া পাসকোড সঠিক ছিল না।",
passcodeAttemptsReached:
"পাসকোডটি অনেকবার ভুলভাবে প্রবেশ করানো হয়েছে৷ একটি নতুন কোড অনুরোধ করুন.",
tooManyRequests:
"অনেক অনুরোধ করা হয়েছে. অনুগ্রহ করে অনুরোধকৃত অপারেশন পুনরাবৃত্তি করার জন্য অপেক্ষা করুন।",
unauthorized: "আপনার সেশনের মেয়াদ শেষ হয়ে গেছে। অনুগ্রহ পূর্বক আরো একবার প্রবেশ করুন.",
invalidWebauthnCredential: "এই পাসকি আর ব্যবহার করা যাবে না।",
passcodeExpired: "পাসকোড মেয়াদ শেষ হয়েছে. একটি নতুন অনুরোধ করুন.",
userVerification:
"ব্যবহারকারী যাচাইকরণ প্রয়োজন. অনুগ্রহ করে নিশ্চিত করুন যে আপনার প্রমাণীকরণকারী ডিভাইসটি একটি পিন বা বায়োমেট্রিক দ্বারা সুরক্ষিত।",
emailAddressAlreadyExistsError: "ইমেল ঠিকানাটি ইতিমধ্যেই বিদ্যমান।",
maxNumOfEmailAddressesReached: "আর কোন ইমেল ঠিকানা যোগ করা যাবে না.",
thirdPartyAccessDenied:
"অ্যাক্সেস অস্বীকার করা হয়েছে৷ অনুরোধটি ব্যবহারকারীর দ্বারা বাতিল করা হয়েছে বা প্রদানকারী অন্যান্য কারণে অ্যাক্সেস অস্বীকার করেছে৷",
thirdPartyMultipleAccounts:
"অ্যাকাউন্ট শনাক্ত করতে পারে না। ইমেল ঠিকানা একাধিক অ্যাকাউন্ট দ্বারা ব্যবহৃত হয়।",
thirdPartyUnverifiedEmail:
"ইমেল যাচাইকরণ প্রয়োজন. অনুগ্রহ করে আপনার প্রদানকারীর সাথে ব্যবহৃত ইমেল ঠিকানা যাচাই করুন।",
},
};
7 changes: 7 additions & 0 deletions frontend/elements/webpack.config.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,13 @@ module.exports = {
type: "module",
},
},
bn: {
filename: "i18n/bn.js",
import: "./src/i18n/bn.ts",
library: {
type: "module",
},
},
all: {
filename: "i18n/all.js",
import: "./src/i18n/all.ts",
Expand Down
Loading