diff --git a/fastlane/metadata/android/iw-IL/short_description.txt b/fastlane/metadata/android/iw-IL/short_description.txt new file mode 100644 index 00000000..bdcc931c --- /dev/null +++ b/fastlane/metadata/android/iw-IL/short_description.txt @@ -0,0 +1 @@ +מעקב אחר כושר גופני, תזונה ומשקל diff --git a/fastlane/metadata/android/pt-PT/full_description.txt b/fastlane/metadata/android/pt-PT/full_description.txt index 60e8c3d9..abb82544 100644 --- a/fastlane/metadata/android/pt-PT/full_description.txt +++ b/fastlane/metadata/android/pt-PT/full_description.txt @@ -1,39 +1,39 @@ -Feito por amantes da vida fitness - organize sua saúde com o WGER, seu Gerenciador de Treinos! +De amantes do exercício para amantes do exercício - Organiza a tua saúde com WGER, o gestor de treinos! -Você já encontrou o seu aplicativo de fitness nº1? Você adora criar suas próprias rotinas de treino? Não importa que tipo de fera esportiva você seja - todos nós temos algo em comum: adoramos acompanhar nossos dados de saúde <3 +Já encontraste a tua aplicação fitness n.º 1 e adoras criar as tuas próprias rotinas desportivas? Independentemente do animal desportivo que sejas, todos temos algo em comum: adoramos dominar os nossos dados biométricos <3 -Nós não te julgamos por ainda gerenciar sua jornada fitness em um caderno, mas bem-vindo(a) ao século 21! +Por isso não te julgamos se ainda fazes os teus registos no teu lindo caderninho de treino, mas bem-vindo a 2025! -Desenvolvemos um aplicativo de acompanhemento de saúde e fitness 100% gratuito para você, reduzido aos recursos mais relevantes para facilitar sua vida. Comece, treine e comemore seu progresso! +Desenvolvemos uma aplicação digital de controle de treino e saúde 100% livre para ti, simplificada às funções mais importantes para simplificar a tua vida. Começa, continua a treinar e celebra os teus progressos! -O wger é um projeto open-source que é sobre: -* Seu Corpo -* Seus Treinos -* Seu Progresso -* Seus Dados +wger é um projeto open source e comprometido com: +* O teu corpo +* Os teus treinos +* O teu progresso +* Os teus dados -Seu Corpo: -Não precisa pesquisar no Google os ingredientes de suas receitas favoritas - escolha suas refeições diárias entre mais de 78.000 itens e veja os valores nutricionais. Adicione as refeições ao plano nutricional e mantenha uma visão geral de sua dieta no calendário. +O teu corpo +Não é preciso googlar os ingredientes dos teus petiscos favoritos - escolhe as tuas refeições diárias de mais de 78000 produtos e verifica os valores nutricionais. Adiciona refeições ao plano nutricional e tem uma visão de conjunto da tua dieta no calendário. -Seus Treinos: -Você sabe o que é melhor para o seu corpo. Crie seus próprios treinos a partir de uma variedade de mais de 200 exercícios. Em seguida, use o Modo Academia para orientá-lo durante o treino, enquanto registra suas cargas com um clique. +Os teus treinos +Tu sabes o que é melhor para o teu corpo. Cria os teus treinos a partir duma grande variedade de 200 exercícios diferentes. Depois, usa o modo ginásio para te guiar no treino enquanto registas os pesos com um toque. -Seu Progresso: -Nunca perca de vista seus objetivos. Acompanhe seu peso e mantenha suas estatísticas. +O teu progresso +Nunca percas os teus objetivos de vista. Regista o teu peso e guarda as tuas estatísticas. -Seus Dados: -O wger é o seu diário fitness personalizado - mas você é dono(a) dos seus dados. Use a REST API para acessá-los e fazer coisas incríveis com eles. +Os teus dados +wger é o teu diário de treino personalizado - mas tu possuis os teus dados. Usa a API REST para aceder e fazer coisas espantosas com eles. -Obs.: Este aplicativo gratuito não é baseado em financiamentos adicionais e não pedimos que você doe dinheiro. Mais do que isso, é um projeto comunitário em constante crescimento. Portanto, esteja preparado(a) para novos recursos a qualquer momento! +Por favor nota: Esta app gratuita não está baseada em fundos adicionais e não pedimos que dês dinheiro. Mais do que isso, é um projeto comunitário que tem evoluído constantemente. Por isso, espera novas funcionalidades a qualquer momento! -#CódigoAberto - o que isso significa? +#Código aberto - O que quer isso dizer? -Código aberto significa que todo o código-fonte deste aplicativo e do servidor ao qual ele se conecta é gratuito e está disponível para qualquer pessoa: -* Você quer executar o wger em seu próprio servidor, para você ou para sua academia? Sinta-se à vontade! -* Está sentindo falta de um recurso e quer implementá-lo? Comece agora! -* Quer verificar se nenhum dado está sendo compartilhado? Você pode! +Código aberto quer dizer que todo o código fonte desta aplicação e do servidor com que comunica é livre e disponível para toda a gente: +* Queres correr o wger no teu servidor para ti e para o teu ginásio? Força! +* Sentes falta duma funcionalidade e queres implementá-la? Começa já! +* Queres verificar que nada está a ser enviado para lado nenhum? Podes! -Junte-se à nossa comunidade e faça parte dos entusiastas do esporte e geeks de TI de todo o mundo. Continuamos trabalhando para ajustar e otimizar o aplicativo de acordo com nossas necessidades. Amamos suas contribuições, então sinta-se à vontade para participar a qualquer momento e contribuir com seus desejos e ideias! +Junta-te à nossa comunidade e torna-te parte de entusiastas do exercício e geeks das TI de todo o mundo. Nós continuamos a ajustar e otimizar a app talhada para as nossas necessidades. Adoramos o teu contributo, por isso sente-te à vontade para aparecer com sugestões e ideias! --> encontre o código-fonte em https://github.com/wger-project --> faça suas perguntas ou apenas diga Olá no nosso servidor do Discord https://discord.gg/rPWFv6W +-> encontra o código fonte em https://github.com/wger-project +-> faz as tuas perguntas ou simplesmente diz olá no nosso servidor discord https://discord.gg/rPWFv6W diff --git a/fastlane/metadata/android/pt-PT/short_description.txt b/fastlane/metadata/android/pt-PT/short_description.txt index 064060fe..3b018c2c 100644 --- a/fastlane/metadata/android/pt-PT/short_description.txt +++ b/fastlane/metadata/android/pt-PT/short_description.txt @@ -1 +1 @@ -Monitore seus treinos e dieta +Gestor de treinos, nutrição e peso diff --git a/lib/l10n/app_ar.arb b/lib/l10n/app_ar.arb index f6b4f004..5cd7da9d 100644 --- a/lib/l10n/app_ar.arb +++ b/lib/l10n/app_ar.arb @@ -795,5 +795,15 @@ "description": "Error message when the user enters an invalid API key" }, "useUsernameAndPassword": "استخدم اسم المستخدم وكلمة المرور", - "@useUsernameAndPassword": {} + "@useUsernameAndPassword": {}, + "selectAvailablePlates": "اختر من الاطباق المتوفرة", + "@selectAvailablePlates": {}, + "barWeight": "وزن القضيب الحديدي", + "@barWeight": {}, + "useColors": "استخدم الالوان", + "@useColors": {}, + "apiTokenValidChars": "إن مفتاح ال API لا يمكن أن يحتوي غير الأحرف من a-f، أرقام من 0-9، ويحب أن تكون 40 محرف تماما", + "@apiTokenValidChars": { + "description": "Error message when the user tries to input a API key with forbidden characters" + } } diff --git a/lib/l10n/app_he.arb b/lib/l10n/app_he.arb index 5c4ca82c..84233651 100644 --- a/lib/l10n/app_he.arb +++ b/lib/l10n/app_he.arb @@ -45,19 +45,19 @@ "@customServerHint": { "description": "Hint text for the form where the users can enter their own wger instance" }, - "labelWorkoutLogs": "יומני אימון", + "labelWorkoutLogs": "אימונים מתועדים", "@labelWorkoutLogs": { "description": "(Workout) logs" }, - "labelWorkoutPlan": "תוכנית כושר", + "labelWorkoutPlan": "תוכנית אימונים", "@labelWorkoutPlan": { "description": "Title for screen workout plan" }, - "labelDashboard": "לוח פעולות", + "labelDashboard": "לוח בקרה", "@labelDashboard": { "description": "Title for screen dashboard" }, - "successfullyDeleted": "נמחק", + "successfullyDeleted": "המחיקה בוצעה", "@successfullyDeleted": { "description": "Message when an item was successfully deleted" }, @@ -65,11 +65,11 @@ "@successfullySaved": { "description": "Message when an item was successfully saved" }, - "exercise": "תרגיל כושר", + "exercise": "תרגיל", "@exercise": { "description": "An exercise for a workout" }, - "searchExercise": "חיפוש תרגיל כושר להוספה", + "searchExercise": "חיפוש תרגילים להוספה", "@searchExercise": { "description": "Label on set form. Selected exercises are added to the set" }, @@ -129,7 +129,7 @@ "@notes": { "description": "Personal notes, e.g. for a workout session" }, - "workoutSession": "אימון", + "workoutSession": "סשן אימונים", "@workoutSession": { "description": "A (logged) workout session" }, @@ -165,7 +165,7 @@ "@mealLogged": {}, "addIngredient": "הוספת מרכיב", "@addIngredient": {}, - "nutritionalPlan": "תוכנית תזונה", + "nutritionalPlan": "תכנון תזונתי", "@nutritionalPlan": {}, "nutritionalDiary": "יומן תזונה", "@nutritionalDiary": {}, @@ -199,7 +199,7 @@ "@value": { "description": "The value of a measurement entry" }, - "start": "התחל", + "start": "התחלה", "@start": { "description": "Label on button to start the gym mode (i.e., an imperative)" }, @@ -223,7 +223,7 @@ "@energy": { "description": "Energy in a meal, ingredient etc. e.g. in kJ" }, - "logMeal": "רשום את הארוחה הזאת", + "logMeal": "תיעוד המנה ביומן התזונתי", "@logMeal": {}, "logHelpEntriesUnits": "שים לב שרק רשומות עם יחידת משקל (ק\"ג או ליברות) וחזרות הן ממופות, ישנה התעלמות משילובים אחרים כגון זמן או עד כשלון.", "@logHelpEntriesUnits": {}, @@ -243,7 +243,7 @@ "@difference": {}, "percentEnergy": "אחוז של אנרגיה", "@percentEnergy": {}, - "total": "סה\"כ", + "total": "סה״כ", "@total": { "description": "Label used for total sums of e.g. calories or similar" }, @@ -273,7 +273,7 @@ "@amount": { "description": "The amount (e.g. in grams) of an ingredient in a meal" }, - "unit": "יחידה", + "unit": "יחידת מידה", "@unit": { "description": "The unit used for a repetition (kg, time, etc.)" }, @@ -322,11 +322,11 @@ "description": "Label shown on the slider where the user can toggle showing units and RiR", "type": "text" }, - "reset": "אתחול", + "reset": "איפוס", "@reset": { "description": "Button text allowing the user to reset the entered values to the default" }, - "loginInstead": "הכנס במקום", + "loginInstead": "כבר יש לך חשבון? ניתן להיכנס", "@loginInstead": {}, "selectExercise": "אנא בחר/י אימון", "@selectExercise": { @@ -379,7 +379,7 @@ "@gallery": {}, "addImage": "הוסף תמונה", "@addImage": {}, - "email": "כתובת מייל", + "email": "כתובת דואר אלקטרוני", "@email": {}, "username": "שם משתמש", "@username": {}, @@ -399,13 +399,13 @@ "@passwordsDontMatch": { "description": "Error message when the user enters two different passwords during registration" }, - "invalidEmail": "אנא הכנס/י כתובת מייל תקינה", + "invalidEmail": "נא להקליד כתובת דואר אלקטרוני תקינה", "@invalidEmail": { "description": "Error message when the user enters an invalid email" }, "registerInstead": "אין לך חשבון? הירשם עכשיו", "@registerInstead": {}, - "labelBottomNavWorkout": "כושר", + "labelBottomNavWorkout": "אימון", "@labelBottomNavWorkout": { "description": "Label used in bottom navigation, use a short word" }, @@ -445,9 +445,9 @@ "@selectExercises": {}, "logHelpEntries": "אם ביום אחד ישנה יותר מרשומה אחת עם אותה כמות חזרות, אבל משקל שונה, רק הרשומה עם המשקל הגבוה יותר תופיע בדיאגרמה.", "@logHelpEntries": {}, - "searchNamesInEnglish": "חפש גם לפי שמות באנגלית", + "searchNamesInEnglish": "לחפש גם לפי השמות באנגלית", "@searchNamesInEnglish": {}, - "success": "מוצלח", + "success": "הפעולה צלחה", "@success": { "description": "Message when an action completed successfully, usually used as a heading" }, @@ -466,5 +466,501 @@ "noMatchingExerciseFound": "לא נמצאו תרגילים תואמים", "@noMatchingExerciseFound": { "description": "Message returned if no exercises match the searched string" + }, + "useColors": "שימוש בצבעים", + "@useColors": {}, + "useApiToken": "שימוש באסימון API", + "@useApiToken": {}, + "useUsernameAndPassword": "שימוש בשם משתמש וסיסמה", + "@useUsernameAndPassword": {}, + "apiToken": "אסימון API", + "@apiToken": {}, + "invalidApiToken": "נא להקליד אסימון API תקין", + "@invalidApiToken": { + "description": "Error message when the user enters an invalid API key" + }, + "routines": "שגרות", + "@routines": {}, + "newRoutine": "שגרה חדשה", + "@newRoutine": {}, + "noRoutines": "אין לך שגרות", + "@noRoutines": {}, + "restDay": "יום מנוחה", + "@restDay": {}, + "isRestDay": "הוא יום מנוחה", + "@isRestDay": {}, + "routineDays": "ימים בשגרה", + "@routineDays": {}, + "verify": "אימות", + "@verify": {}, + "searchIngredient": "חיפוש מרכיב", + "@searchIngredient": { + "description": "Label on ingredient search form" + }, + "onlyLogging": "מעקב אחר קלוריות בלבד", + "@onlyLogging": {}, + "goalMacro": "מטרות מזעריות", + "@goalMacro": { + "description": "The goal for macronutrients" + }, + "goalEnergy": "יעד אנרגיה", + "@goalEnergy": {}, + "goalProtein": "יעד חלבונים", + "@goalProtein": {}, + "goalFat": "יעד שומנים", + "@goalFat": {}, + "goalFiber": "יעד סיבים תזונתיים", + "@goalFiber": {}, + "errorViewDetails": "פרטים טכניים", + "@errorViewDetails": {}, + "errorCouldNotConnectToServer": "לא היה ניתן להתחבר לשרת", + "@errorCouldNotConnectToServer": {}, + "min": "מינ׳", + "@min": {}, + "max": "מקס׳", + "@max": {}, + "today": "היום", + "@today": {}, + "weekAverage": "ממוצע שבועי", + "@weekAverage": { + "description": "Header for the column of '7 day average' nutritional values, i.e. what was logged last week" + }, + "kcalValue": "{value} ק׳ קלוריות", + "@kcalValue": { + "description": "A value in kcal, e.g. 500 kcal", + "type": "text", + "placeholders": { + "value": { + "type": "String" + } + } + }, + "gValue": "{value} גר׳", + "@gValue": { + "description": "A value in grams, e.g. 5 g", + "type": "text", + "placeholders": { + "value": { + "type": "String" + } + } + }, + "percentValue": "{value}%", + "@percentValue": { + "description": "A value in percent, e.g. 10 %", + "type": "text", + "placeholders": { + "value": { + "type": "String" + } + } + }, + "aboutWhySupportTitle": "תוכנה בקוד פתוח, וחופשית לשימוש ❤️", + "@aboutWhySupportTitle": {}, + "aboutDonateTitle": "תרומה כספית", + "@aboutDonateTitle": {}, + "aboutContributeTitle": "התנדבות", + "@aboutContributeTitle": {}, + "aboutTranslationListTitle": "עזרה בתרגום היישום", + "@aboutTranslationListTitle": {}, + "aboutSourceListTitle": "צפייה בקוד המקור", + "@aboutSourceListTitle": {}, + "aboutJoinCommunityTitle": "הצטרפות לקהילה", + "@aboutJoinCommunityTitle": {}, + "others": "אחרים", + "@others": {}, + "selectEntry": "נא לבחור ערך", + "@selectEntry": {}, + "recentlyUsedIngredients": "מרכיבים שנוספו לאחרונה", + "@recentlyUsedIngredients": { + "description": "A message when a user adds a new ingredient to a meal." + }, + "appUpdateTitle": "צריך לעדכן", + "@appUpdateTitle": {}, + "appUpdateContent": "גרסה זו של היישום אינה מסוגלת להתחבר לשרת, נא לעדכן את היישום.", + "@appUpdateContent": {}, + "productFound": "המוצר נמצא", + "@productFound": { + "description": "Header label for dialog when product is found with barcode" + }, + "productNotFound": "המוצר לא נמצא", + "@productNotFound": { + "description": "Header label for dialog when product is not found with barcode" + }, + "scanBarcode": "סריקת ברקוד", + "@scanBarcode": { + "description": "Label for scan barcode button" + }, + "close": "סגירה", + "@close": { + "description": "Translation for close" + }, + "alsoKnownAs": "מוכר גם בתור: {aliases}", + "@alsoKnownAs": { + "placeholders": { + "aliases": { + "type": "String" + } + }, + "description": "List of alternative names for an exercise" + }, + "alternativeNames": "שמות חלופיים", + "@alternativeNames": {}, + "previous": "הקודם", + "@previous": {}, + "next": "הבא", + "@next": {}, + "images": "תמונות", + "@images": {}, + "language": "שפה", + "@language": {}, + "addExercise": "הוספת תרגיל", + "@addExercise": {}, + "translation": "תרגום", + "@translation": {}, + "translateExercise": "לתרגם את התרגיל הזה כעת", + "@translateExercise": {}, + "settingsTitle": "הגדרות", + "@settingsTitle": {}, + "settingsCacheTitle": "מטמון", + "@settingsCacheTitle": {}, + "settingsExerciseCacheDescription": "מטמון תרגילים", + "@settingsExerciseCacheDescription": {}, + "aboutPageTitle": "מידע כללי ותמיכה", + "@aboutPageTitle": {}, + "simpleMode": "מצב פשוט", + "@simpleMode": {}, + "arms": "זרועות", + "@arms": { + "description": "Generated entry for translation for server strings" + }, + "back": "גב", + "@back": { + "description": "Generated entry for translation for server strings" + }, + "biceps": "שרירי הקיבורת (דו־ראשיים)", + "@biceps": { + "description": "Generated entry for translation for server strings" + }, + "body_weight": "משקל הגוף", + "@body_weight": { + "description": "Generated entry for translation for server strings" + }, + "cardio": "סיבולת", + "@cardio": { + "description": "Generated entry for translation for server strings" + }, + "chest": "חזה", + "@chest": { + "description": "Generated entry for translation for server strings" + }, + "gym_mat": "שטיח אימונים", + "@gym_mat": { + "description": "Generated entry for translation for server strings" + }, + "kilometers": "קילומטרים", + "@kilometers": { + "description": "Generated entry for translation for server strings" + }, + "kilometers_per_hour": "קילומטרים לשעה", + "@kilometers_per_hour": { + "description": "Generated entry for translation for server strings" + }, + "miles": "מילים", + "@miles": { + "description": "Generated entry for translation for server strings" + }, + "miles_per_hour": "מילים לשעה", + "@miles_per_hour": { + "description": "Generated entry for translation for server strings" + }, + "minutes": "דקות", + "@minutes": { + "description": "Generated entry for translation for server strings" + }, + "resistance_band": "רצועת התנגדות", + "@resistance_band": { + "description": "Generated entry for translation for server strings" + }, + "seconds": "שניות", + "@seconds": { + "description": "Generated entry for translation for server strings" + }, + "shoulders": "כתפיים", + "@shoulders": { + "description": "Generated entry for translation for server strings" + }, + "triceps": "השרירים התלת־ראשיים", + "@triceps": { + "description": "Generated entry for translation for server strings" + }, + "kg": "ק״ג", + "@kg": { + "description": "Generated entry for translation for server strings" + }, + "goalTypeBasic": "בסיסי", + "@goalTypeBasic": { + "description": "added for localization of Class GoalType's filed basic" + }, + "goalTypeAdvanced": "מתקדם", + "@goalTypeAdvanced": { + "description": "added for localization of Class GoalType's filed advanced" + }, + "indicatorAvg": "ממוצע", + "@indicatorAvg": { + "description": "added for localization of Class Indicator's field text" + }, + "systemMode": "הגדרות מערכת", + "@systemMode": {}, + "copyToClipboard": "העתקה ללוח", + "@copyToClipboard": {}, + "noIngredientsDefined": "עדיין לא הוגדרו מרכיבים", + "@noIngredientsDefined": {}, + "restTime": "זמן מנוחה", + "@restTime": {}, + "sets": "סטים", + "@sets": { + "description": "The number of sets to be done for one exercise" + }, + "ingredientLogged": "המרכיב תועד ביומן", + "@ingredientLogged": {}, + "logIngredient": "תיעוד המרכיב ביומן התזונתי", + "@logIngredient": {}, + "errorInfoDescription": "משהו השתבש, עמך הסליחה. ניתן לעזור לנו בתיקון התקלה בעזרת דיווח על הבעיה ב־GitHub.", + "@errorInfoDescription": {}, + "errorInfoDescription2": "אפשר להמשיך להשתמש ביישום, אבל ייתכן כי תכונות מסוימות לא יעבדו.", + "@errorInfoDescription2": {}, + "proteinShort": "חל׳", + "@proteinShort": { + "description": "The first letter or short name of the word 'Protein', used in overviews" + }, + "fatShort": "שומנ׳", + "@fatShort": { + "description": "The first letter or short name of the word 'Fat', used in overviews" + }, + "moreMeasurementEntries": "הוספת מדד חדש", + "@moreMeasurementEntries": { + "description": "Message shown when the user wants to add new measurement" + }, + "aboutBugsListTitle": "דיווח על בעיה או הצעת תכונה חדשה", + "@aboutBugsListTitle": {}, + "aboutDiscordTitle": "Discord", + "@aboutDiscordTitle": {}, + "dataCopied": "הנתונים הועתקו לערך החדש", + "@dataCopied": { + "description": "Snackbar message to show on copying data to a new log entry" + }, + "useMetric": "שימוש בשיטה המטרית למדידת משקל הגוף", + "@useMetric": {}, + "selectMealToLog": "בחירת מנה לתיעוד ביומן", + "@selectMealToLog": {}, + "energyShort": "אנרגיה", + "@energyShort": { + "description": "The first letter or short name of the word 'Energy', used in overviews" + }, + "loggedToday": "תועדו היום", + "@loggedToday": {}, + "enterMinCharacters": "נא להקליד לפחות {min} תווים", + "@enterMinCharacters": { + "description": "Error message when the user hasn't entered the minimum amount characters in a form", + "type": "text", + "placeholders": { + "min": { + "type": "String" + } + } + }, + "productFoundDescription": "הברקוד תואם למוצר: {productName}. להמשיך?", + "@productFoundDescription": { + "description": "Dialog info when product is found with barcode", + "type": "text", + "placeholders": { + "productName": { + "type": "String" + } + } + }, + "productNotFoundDescription": "לא נמצא המוצר עם הברקוד שנסרק {barcode} במאגר של wger", + "@productNotFoundDescription": { + "description": "Dialog info when product is not found with barcode", + "type": "text", + "placeholders": { + "barcode": { + "type": "String" + } + } + }, + "verifiedEmail": "דוא״ל מאומת", + "@verifiedEmail": {}, + "unVerifiedEmail": "דוא״ל לא מאומת", + "@unVerifiedEmail": {}, + "verifiedEmailInfo": "נשלחה הודעת אימות לכתובת {email}", + "@verifiedEmailInfo": { + "placeholders": { + "email": { + "type": "String" + } + } + }, + "setHasNoExercises": "עדיין אין אימונים בסט זה!", + "@setHasNoExercises": {}, + "settingsIngredientCacheDescription": "מטמון מרכיב", + "@settingsIngredientCacheDescription": {}, + "settingsCacheDeletedSnackbar": "המטמון נוקה בהצלחה", + "@settingsCacheDeletedSnackbar": {}, + "textPromptTitle": "מוכנים להתחיל?", + "@textPromptTitle": {}, + "abs": "שרירי בטן", + "@abs": { + "description": "Generated entry for translation for server strings" + }, + "lb": "פאונד", + "@lb": { + "description": "Generated entry for translation for server strings" + }, + "log": "תיעוד", + "@log": { + "description": "Log a specific meal (imperative form)" + }, + "done": "סיום", + "@done": {}, + "themeMode": "ערכת עיצוב", + "@themeMode": {}, + "darkMode": "עיצוב כהה תמיד", + "@darkMode": {}, + "lightMode": "עיצוב בהיר תמיד", + "@lightMode": {}, + "barWeight": "משקל Bar", + "@barWeight": {}, + "apiTokenValidChars": "מפתח API יכול להכיל רק את האותיות a-f, את הספרות 0-9, ועליו להיות באורך 40 תווים בדיוק", + "@apiTokenValidChars": { + "description": "Error message when the user tries to input a API key with forbidden characters" + }, + "exerciseNr": "תרגיל {nr}", + "@exerciseNr": { + "description": "Header in form indicating the number of the current exercise. Can also be translated as something like 'Set Nr. xy'.", + "type": "text", + "placeholders": { + "nr": { + "type": "String" + } + } + }, + "isRestDayHelp": "לתשומת לבך, כל הסטים והתרגילים יוסרו מימים שהגדרת בתור ימי מנוחה.", + "@isRestDayHelp": {}, + "onlyLoggingHelpText": "נא לסמן תיבה זו אך ורק אם ברצונך לתעד את כמות הקלוריות מבלי להגדיר תוכנית תזונתית עם מנות ספציפיות", + "@onlyLoggingHelpText": {}, + "yourCurrentNutritionPlanHasNoMealsDefinedYet": "לא הוגדרו מנות בתוכניות התזונתית הנוכחית שלך", + "@yourCurrentNutritionPlanHasNoMealsDefinedYet": { + "description": "Message shown when a nutrition plan doesn't have any meals" + }, + "toAddMealsToThePlanGoToNutritionalPlanDetails": "לצורך הוספת מנות לתוכנית, יש לגשת לפרטי התוכנית התזונתית", + "@toAddMealsToThePlanGoToNutritionalPlanDetails": { + "description": "Message shown to guide users to the nutritional plan details page to add meals" + }, + "errorCouldNotConnectToServerDetails": "אין באפשרות היישום להתחבר לשרת. נא לבדוק את החיבור לאינטרנט או לכתובת השרת ולנסות שוב. אם הבעיה ממשיכה להתקיים, נא לפנות למנהל השרת.", + "@errorCouldNotConnectToServerDetails": {}, + "chartAllTimeTitle": "{name} בכל הזמנים", + "@chartAllTimeTitle": { + "description": "All-time chart of 'name' (e.g. 'weight', 'body fat' etc.)", + "type": "text", + "placeholders": { + "name": { + "type": "String" + } + } + }, + "chart30DaysTitle": "{name} ב־30 הימים האחרונים", + "@chart30DaysTitle": { + "description": "last 30 days chart of 'name' (e.g. 'weight', 'body fat' etc.)", + "type": "text", + "placeholders": { + "name": { + "type": "String" + } + } + }, + "chartDuringPlanTitle": "{chartName} במסגרת התוכנית התזונתית {planName}", + "@chartDuringPlanTitle": { + "description": "chart of 'chartName' (e.g. 'weight', 'body fat' etc.) logged during plan", + "type": "text", + "placeholders": { + "chartName": { + "type": "String" + }, + "planName": { + "type": "String" + } + } + }, + "aboutDonateText": "בעוד המיזם הזה חופשי ותמיד יישאר כך, תפעול השרת כן עולה לנו כסף! גם הפיתוח דורש השקעה משמעותית של זמן ומאמץ של מתנדבים. התרומה שלך תלך ישירות לכיסוי העלויות האלה, המאפשרות לספק את השירות שלנו נאמנה.", + "@aboutDonateText": {}, + "aboutContributeText": "אנחנו מעודדים את כל סוגי התרומה. בין אם היא מתבטאת בפיתוח קוד, תרגום, או אפילו רק תשוקה לכושר, אנו מעריכים כל סוג של תמיכה!", + "@aboutContributeText": {}, + "aboutMastodonTitle": "Mastodon", + "@aboutMastodonTitle": {}, + "baseNameEnglish": "לכל התרגילים נחוץ שם מקור באנגלית", + "@baseNameEnglish": {}, + "add_exercise_image_license": "על התמונות להיות תואמות לרישיון CC BY SA. אם יש ספק כלשהו, יש להעלות רק תמונות שצילמת בעצמך.", + "@add_exercise_image_license": {}, + "variations": "וריאציות", + "@variations": { + "description": "Variations of one exercise (e.g. benchpress and benchpress narrow)" + }, + "verifiedEmailReason": "עליך לאמת את הדואר האלקטרוני שלך כדי לתרום תרגילים", + "@verifiedEmailReason": {}, + "oneNamePerLine": "שם אחד בכל שורה", + "@oneNamePerLine": {}, + "whatVariationsExist": "מהן הווריאציות שיש לתרגיל זה, אם קיימות?", + "@whatVariationsExist": {}, + "contributeExercise": "לתרום תרגיל", + "@contributeExercise": {}, + "contributeExerciseWarning": "אפשר לתרום תרגילים אך ורק אם החשבון שלך בן יותר מ־{days} ימים וכתובת הדואר האלקטרוני שלך מאומתת", + "@contributeExerciseWarning": { + "description": "Number of days before which a person can add exercise", + "placeholders": { + "days": { + "type": "String", + "example": "14" + } + } + }, + "textPromptSubheading": "נא ללחוץ על כפתור הפעולה כדי להתחיל", + "@textPromptSubheading": {}, + "bench": "", + "@bench": { + "description": "Generated entry for translation for server strings" + }, + "dumbbell": "משקולות", + "@dumbbell": { + "description": "Generated entry for translation for server strings" + }, + "kettlebell": "משקולות קטלבל", + "@kettlebell": { + "description": "Generated entry for translation for server strings" + }, + "legs": "רגליים", + "@legs": { + "description": "Generated entry for translation for server strings" + }, + "lower_back": "גב תחתון", + "@lower_back": { + "description": "Generated entry for translation for server strings" + }, + "max_reps": "מספר מרבי של חזרות", + "@max_reps": { + "description": "Generated entry for translation for server strings" + }, + "swiss_ball": "כדור התעמלות", + "@swiss_ball": { + "description": "Generated entry for translation for server strings" + }, + "none__bodyweight_exercise_": "ללא (התרגיל מסתמך על משקל גוף)", + "@none__bodyweight_exercise_": { + "description": "Generated entry for translation for server strings" + }, + "overallChangeWeight": "שינוי כללי", + "@overallChangeWeight": { + "description": "Overall change in weight, added for localization" } -} \ No newline at end of file +} diff --git a/lib/l10n/app_id.arb b/lib/l10n/app_id.arb index 96bcc922..398849e8 100644 --- a/lib/l10n/app_id.arb +++ b/lib/l10n/app_id.arb @@ -36,9 +36,9 @@ "@passwordTooShort": { "description": "Error message when the user a password that is too short" }, - "password": "Password", + "password": "Kata sandi", "@password": {}, - "confirmPassword": "Konfirmasi Password", + "confirmPassword": "Konfirmasi Kata Sandi", "@confirmPassword": {}, "invalidEmail": "Mohon masukkan E-mail yang valid", "@invalidEmail": { @@ -46,7 +46,7 @@ }, "email": "Alamat E-mail", "@email": {}, - "username": "Username", + "username": "Nama pengguna", "@username": {}, "invalidUsername": "Mohon masukkan username yang valid", "@invalidUsername": { @@ -124,11 +124,11 @@ "@repetitions": { "description": "Repetitions for an exercise set" }, - "reps": "Reps", + "reps": "Repetisi", "@reps": { "description": "Shorthand for repetitions, used when space constraints are tighter" }, - "rir": "RiR", + "rir": "Repetisi tersisa", "@rir": { "description": "Shorthand for Repetitions In Reserve" }, @@ -186,7 +186,7 @@ "@gymMode": { "description": "Label when starting the gym mode" }, - "plateCalculator": "Plates", + "plateCalculator": "Lempeng Beban", "@plateCalculator": { "description": "Label used for the plate calculator in the gym mode" }, @@ -204,9 +204,9 @@ }, "todaysWorkout": "Latihanmu hari ini", "@todaysWorkout": {}, - "logHelpEntries": "If on a single day there is more than one entry with the same number of repetitions, but different weights, only the entry with the higher weight is shown in the diagram.", + "logHelpEntries": "Jika dalam satu hari terdapat lebih dari satu entri dengan jumlah repetisi yang sama namun beban berbeda, hanya entri dengan beban tertinggi yang akan ditampilkan di diagram.", "@logHelpEntries": {}, - "logHelpEntriesUnits": "Note that only entries with a weight unit (kg or lb) and repetitions are charted, other combinations such as time or until failure are ignored here.", + "logHelpEntriesUnits": "Perlu dicatat bahwa hanya entri dengan satuan beban (kg atau lb) dan repetisi yang akan ditampilkan di grafik. Kombinasi lain seperti waktu atau hingga gagal tidak diperhitungkan di sini.", "@logHelpEntriesUnits": {}, "description": "Description", "@description": {}, @@ -222,49 +222,49 @@ }, "addMeal": "Tambah makanan", "@addMeal": {}, - "mealLogged": "Meal logged to diary", + "mealLogged": "Makanan ditambahkan ke buku harian", "@mealLogged": {}, - "logMeal": "Catat makanan ini", + "logMeal": "Catat makanan ke buku harian nutrisi", "@logMeal": {}, "addIngredient": "Tambah komposisi", "@addIngredient": {}, - "logIngredient": "Simpan di diari nutrisi", + "logIngredient": "Catat bahan ke buku harian nutrisi", "@logIngredient": {}, "searchIngredient": "Cari komposisi", "@searchIngredient": { "description": "Label on ingredient search form" }, - "nutritionalPlan": "Nutritional plan", + "nutritionalPlan": "Rencana Nutrisi", "@nutritionalPlan": {}, - "nutritionalDiary": "Nutritional diary", + "nutritionalDiary": "Buku Harian Nutrisi", "@nutritionalDiary": {}, - "nutritionalPlans": "Nutritional plans", + "nutritionalPlans": "Rencana Nutrisi", "@nutritionalPlans": {}, - "noNutritionalPlans": "You have no nutritional plans", + "noNutritionalPlans": "Anda belum memiliki rencana nutrisi", "@noNutritionalPlans": { "description": "Message shown when the user has no nutritional plans" }, - "anErrorOccurred": "An Error Occurred!", + "anErrorOccurred": "Terjadi kesalahan!", "@anErrorOccurred": {}, - "weight": "Weight", + "weight": "Berat", "@weight": { "description": "The weight of a workout log or body weight entry" }, "measurement": "Ukuran", "@measurement": {}, - "measurements": "Measurements", + "measurements": "Pengukuran", "@measurements": { "description": "Categories for the measurements such as biceps size, body fat, etc." }, - "measurementCategoriesHelpText": "Measurement category, such as 'biceps' or 'body fat'", + "measurementCategoriesHelpText": "Kategori pengukuran, seperti 'bisep' atau 'lemak tubuh'", "@measurementCategoriesHelpText": {}, - "measurementEntriesHelpText": "The unit used to measure the category such as 'cm' or '%'", + "measurementEntriesHelpText": "Satuan yang digunakan untuk mengukur kategori, seperti 'cm' atau '%'", "@measurementEntriesHelpText": {}, "date": "Date", "@date": { "description": "The date of a workout log or body weight entry" }, - "value": "Value", + "value": "Nilai", "@value": { "description": "The value of a measurement entry" }, @@ -272,23 +272,23 @@ "@start": { "description": "Label on button to start the gym mode (i.e., an imperative)" }, - "time": "Time", + "time": "Waktu", "@time": { "description": "The time of a meal or workout" }, - "timeStart": "Start time", + "timeStart": "Waktu mulai", "@timeStart": { "description": "The starting time of a workout" }, - "timeEnd": "End time", + "timeEnd": "Waktu selesai", "@timeEnd": { "description": "The end time of a workout" }, - "timeStartAhead": "Start time cannot be ahead of end time", + "timeStartAhead": "Waktu mulai tidak boleh melebihi waktu selesai", "@timeStartAhead": {}, - "ingredient": "Ingredient", + "ingredient": "Komposisi", "@ingredient": {}, - "energy": "Energy", + "energy": "Energi", "@energy": { "description": "Energy in a meal, ingredient etc. e.g. in kJ" }, @@ -296,29 +296,29 @@ "@energyShort": { "description": "The first letter or short name of the word 'Energy', used in overviews" }, - "kcal": "kcal", + "kcal": "kkal", "@kcal": { "description": "Energy in a meal in kilocalories, kcal" }, - "macronutrients": "Macronutrients", + "macronutrients": "Makronutrien", "@macronutrients": {}, - "planned": "Planned", + "planned": "Direncanakan", "@planned": { "description": "Header for the column of 'planned' nutritional values, i.e. what should be eaten" }, - "logged": "Logged", + "logged": "Dicatat", "@logged": { "description": "Header for the column of 'logged' nutritional values, i.e. what was eaten" }, - "weekAverage": "7 day average", + "weekAverage": "Rata-rata 7 hari", "@weekAverage": { "description": "Header for the column of '7 day average' nutritional values, i.e. what was logged last week" }, - "difference": "Difference", + "difference": "Perbedaan", "@difference": {}, "percentEnergy": "Persenan Energi", "@percentEnergy": {}, - "gPerBodyKg": "g per body kg", + "gPerBodyKg": "g per kg tubuh", "@gPerBodyKg": { "description": "Label used for total sums of e.g. calories or similar in grams per Kg of body weight" }, @@ -340,27 +340,27 @@ "@proteinShort": { "description": "The first letter or short name of the word 'Protein', used in overviews" }, - "carbohydrates": "Carbohydrates", + "carbohydrates": "Karbohidrat", "@carbohydrates": {}, "carbohydratesShort": "C", "@carbohydratesShort": { "description": "The first letter or short name of the word 'Carbohydrates', used in overviews" }, - "sugars": "Sugars", + "sugars": "Gula", "@sugars": {}, - "fat": "Fat", + "fat": "Lemak", "@fat": {}, "fatShort": "F", "@fatShort": { "description": "The first letter or short name of the word 'Fat', used in overviews" }, - "saturatedFat": "Saturated fat", + "saturatedFat": "Lemak jenuh", "@saturatedFat": {}, "fiber": "Fibre", "@fiber": {}, "sodium": "Sodium", "@sodium": {}, - "amount": "Amount", + "amount": "Jumlah", "@amount": { "description": "The amount (e.g. in grams) of an ingredient in a meal" }, @@ -368,11 +368,11 @@ "@unit": { "description": "The unit used for a repetition (kg, time, etc.)" }, - "newEntry": "New entry", + "newEntry": "Entri baru", "@newEntry": { "description": "Title when adding a new entry such as a weight or log entry" }, - "noWeightEntries": "You have no weight entries", + "noWeightEntries": "Anda belum memiliki entri berat badan", "@noWeightEntries": { "description": "Message shown when the user has no logged weight entries" }, @@ -384,7 +384,7 @@ }, "delete": "Delete", "@delete": {}, - "confirmDelete": "Are you sure you want to delete '{toDelete}'?", + "confirmDelete": "Apakah anda yakin ingin menghapus '{toDelete}'?", "@confirmDelete": { "description": "Confirmation text before the user deletes an object", "type": "text", @@ -394,33 +394,33 @@ } } }, - "newNutritionalPlan": "New nutritional plan", + "newNutritionalPlan": "Rencana nutrisi baru", "@newNutritionalPlan": {}, - "toggleDetails": "Toggle details", + "toggleDetails": "Toggle rincian", "@toggleDetails": { "description": "Switch to toggle detail / overview" }, "goToDetailPage": "Go to detail page", "@goToDetailPage": {}, - "aboutDescription": "Thank you for using wger! wger is a collaborative open source project, made by fitness enthusiasts from around the world.", + "aboutDescription": "Terima kasih telah menggunakan wger! wger proyek open source kolaboratif, dibuat oleh para penggemar kebugaran dari seluruh dunia.", "@aboutDescription": { "description": "Text in the about dialog" }, - "calendar": "Calendar", + "calendar": "Kalender", "@calendar": {}, - "goToToday": "Go to today", + "goToToday": "Pergi ke hari ini", "@goToToday": { "description": "Label on button to jump back to 'today' in the calendar widget" }, - "enterValue": "Please enter a value", + "enterValue": "Silakan masukan nilai", "@enterValue": { "description": "Error message when the user hasn't entered a value on a required field" }, - "selectExercise": "Please select an exercise", + "selectExercise": "Silakan pilih latihan", "@selectExercise": { "description": "Error message when the user hasn't selected an exercise in the form" }, - "enterCharacters": "Please enter between {min} and {max} characters", + "enterCharacters": "Silakan masukan antara {min} dan {max} karakter", "@enterCharacters": { "description": "Error message when the user hasn't entered the correct number of characters in a form", "type": "text", @@ -433,7 +433,7 @@ } } }, - "nrOfSets": "Sets per exercise: {nrOfSets}", + "nrOfSets": "Sets per latihan: {nrOfSets}", "@nrOfSets": { "description": "Label shown on the slider where the user selects the nr of sets", "type": "text", @@ -443,24 +443,24 @@ } } }, - "setUnitsAndRir": "Set units and RiR", + "setUnitsAndRir": "Unit Set and RiR", "@setUnitsAndRir": { "description": "Label shown on the slider where the user can toggle showing units and RiR", "type": "text" }, - "enterValidNumber": "Please enter a valid number", + "enterValidNumber": "Silakan masukan angka yang valid", "@enterValidNumber": { "description": "Error message when the user has submitted an invalid number (e.g. '3,.,.,.')" }, - "selectIngredient": "Please select an ingredient", + "selectIngredient": "Silakan pilih komposisi", "@selectIngredient": { "description": "Error message when the user hasn't selected an ingredient from the autocompleter" }, - "recentlyUsedIngredients": "Recently added ingredients", + "recentlyUsedIngredients": "Komposisi yang baru ditambahkan", "@recentlyUsedIngredients": { "description": "A message when a user adds a new ingredient to a meal." }, - "selectImage": "Please select an image", + "selectImage": "Silakan pilih gambar", "@selectImage": { "description": "Label and error message when the user hasn't selected an image to save" }, @@ -468,27 +468,27 @@ "@optionsLabel": { "description": "Label for the popup with general app options" }, - "takePicture": "Take a picture", + "takePicture": "Ambil gambar", "@takePicture": {}, - "chooseFromLibrary": "Choose from photo library", + "chooseFromLibrary": "Pilih foto dari library", "@chooseFromLibrary": {}, - "gallery": "Gallery", + "gallery": "Galeri", "@gallery": {}, "addImage": "Add image", "@addImage": {}, - "dataCopied": "Data copied to new entry", + "dataCopied": "Data disalin ke entri baru", "@dataCopied": { "description": "Snackbar message to show on copying data to a new log entry" }, - "appUpdateTitle": "Update needed", + "appUpdateTitle": "Pembaruan diperlukan", "@appUpdateTitle": {}, - "appUpdateContent": "This version of the app is not compatible with the server, please update your application.", + "appUpdateContent": "Versi aplikasi ini tidak kompatibel dengan server, silakan perbarui aplikasi Anda.", "@appUpdateContent": {}, - "productFound": "Product found", + "productFound": "Produk ditemukan", "@productFound": { "description": "Header label for dialog when product is found with barcode" }, - "productFoundDescription": "The barcode corresponds to this product: {productName}. Do you want to continue?", + "productFoundDescription": "Kode batang ini sesuai dengan produk: {productName}. Apakah Anda ingin melanjutkan?", "@productFoundDescription": { "description": "Dialog info when product is found with barcode", "type": "text", @@ -498,11 +498,11 @@ } } }, - "productNotFound": "Product not found", + "productNotFound": "Produk tidak ditemukan", "@productNotFound": { "description": "Header label for dialog when product is not found with barcode" }, - "productNotFoundDescription": "The product with the scanned barcode {barcode} was not found in the wger database", + "productNotFoundDescription": "Produk dengan kode batang {barcode} tidak ditemukan dalam database wger", "@productNotFoundDescription": { "description": "Dialog info when product is not found with barcode", "type": "text", @@ -512,15 +512,15 @@ } } }, - "scanBarcode": "Scan barcode", + "scanBarcode": "Pindai kode batang", "@scanBarcode": { "description": "Label for scan barcode button" }, - "close": "Close", + "close": "Tutup", "@close": { "description": "Translation for close" }, - "userProfile": "Profilmu", + "userProfile": "Profil Kamu", "@userProfile": {}, "verify": "Verifikasi", "@verify": {}, @@ -558,10 +558,510 @@ "@searchNamesInEnglish": {}, "noIngredientsDefined": "Belum ada bahan yang ditetapkan", "@noIngredientsDefined": {}, - "ingredientLogged": "Bahan telah dicatat", + "ingredientLogged": "Komposisi telah dicatat", "@ingredientLogged": {}, "triceps": "Trisep", "@triceps": { "description": "Generated entry for translation for server strings" - } -} \ No newline at end of file + }, + "goalFiber": "Target serat", + "@goalFiber": {}, + "abs": "Otot perut", + "@abs": { + "description": "Generated entry for translation for server strings" + }, + "selectAvailablePlates": "Pilih lempeng beban yang tersedia", + "@selectAvailablePlates": {}, + "useColors": "Gunakan warna", + "@useColors": {}, + "barWeight": "Berat batang", + "@barWeight": {}, + "routineDays": "Hari dalam rutinitas", + "@routineDays": {}, + "resultingRoutine": "Rutinitas yang dihasilkan", + "@resultingRoutine": {}, + "goalCarbohydrates": "Target karbohidrat", + "@goalCarbohydrates": {}, + "alternativeNames": "Nama lain", + "@alternativeNames": {}, + "back": "Punggung", + "@back": { + "description": "Generated entry for translation for server strings" + }, + "routines": "Rutinitas", + "@routines": {}, + "newRoutine": "Rutinitas baru", + "@newRoutine": {}, + "sets": "Set", + "@sets": { + "description": "The number of sets to be done for one exercise" + }, + "isRestDayHelp": "Harap diperhatikan bahwa semua set dan latihan akan dihapus ketika Anda menandai suatu hari sebagai hari istirahat.", + "@isRestDayHelp": {}, + "max": "Maksimal", + "@max": {}, + "today": "Hari ini", + "@today": {}, + "noMeasurementEntries": "Anda belum memiliki entri pengukuran apa pun", + "@noMeasurementEntries": {}, + "log": "Catat", + "@log": { + "description": "Log a specific meal (imperative form)" + }, + "settingsTitle": "Pengaturan", + "@settingsTitle": {}, + "biceps": "Bisep", + "@biceps": { + "description": "Generated entry for translation for server strings" + }, + "miles_per_hour": "Mil Per Jam", + "@miles_per_hour": { + "description": "Generated entry for translation for server strings" + }, + "selectEntry": "Silakan pilih entri", + "@selectEntry": {}, + "next": "Selanjutnya", + "@next": {}, + "simpleMode": "Mode sederhana", + "@simpleMode": {}, + "body_weight": "Berat Badan", + "@body_weight": { + "description": "Generated entry for translation for server strings" + }, + "incline_bench": "Bangku Incline", + "@incline_bench": { + "description": "Generated entry for translation for server strings" + }, + "legs": "Kaki", + "@legs": { + "description": "Generated entry for translation for server strings" + }, + "aboutDonateTitle": "Beri donasi", + "@aboutDonateTitle": {}, + "bench": "Bangku", + "@bench": { + "description": "Generated entry for translation for server strings" + }, + "useUsernameAndPassword": "Gunakan nama pengguna dan kata sandi", + "@useUsernameAndPassword": {}, + "useApiToken": "Gunakan Token API", + "@useApiToken": {}, + "restTime": "Waktu istirahat", + "@restTime": {}, + "restDay": "Hari istirahat", + "@restDay": {}, + "exerciseNr": "Latihan ke-{nr}", + "@exerciseNr": { + "description": "Header in form indicating the number of the current exercise. Can also be translated as something like 'Set Nr. xy'.", + "type": "text", + "placeholders": { + "nr": { + "type": "String" + } + } + }, + "errorCouldNotConnectToServer": "Tidak dapat terhubung ke server", + "@errorCouldNotConnectToServer": {}, + "errorInfoDescription": "Maaf, terjadi kesalahan. Anda dapat membantu kami memperbaikinya dengan melaporkan masalah ini di GitHub.", + "@errorInfoDescription": {}, + "min": "Minimal", + "@min": {}, + "chartAllTimeTitle": "{name}Sepanjang waktu", + "@chartAllTimeTitle": { + "description": "All-time chart of 'name' (e.g. 'weight', 'body fat' etc.)", + "type": "text", + "placeholders": { + "name": { + "type": "String" + } + } + }, + "chart30DaysTitle": "{name} 30 hari terakhir", + "@chart30DaysTitle": { + "description": "last 30 days chart of 'name' (e.g. 'weight', 'body fat' etc.)", + "type": "text", + "placeholders": { + "name": { + "type": "String" + } + } + }, + "chartDuringPlanTitle": "{chartName} selama rencana nutrisi {planName}", + "@chartDuringPlanTitle": { + "description": "chart of 'chartName' (e.g. 'weight', 'body fat' etc.) logged during plan", + "type": "text", + "placeholders": { + "chartName": { + "type": "String" + }, + "planName": { + "type": "String" + } + } + }, + "aboutWhySupportTitle": "Bersifat open source & gratis ❤️", + "@aboutWhySupportTitle": {}, + "aboutSourceListTitle": "Lihat kode sumber", + "@aboutSourceListTitle": {}, + "aboutJoinCommunityTitle": "Gabung komunitas", + "@aboutJoinCommunityTitle": {}, + "previous": "Sebelumnya", + "@previous": {}, + "setHasProgressionWarning": "Perlu diketahui, saat ini pengaturan lengkap untuk set dan konfigurasi progresi otomatis belum bisa dilakukan di aplikasi mobile. Silakan gunakan aplikasi web untuk fitur tersebut.", + "@setHasProgressionWarning": {}, + "settingsExerciseCacheDescription": "Cache latihan", + "@settingsExerciseCacheDescription": {}, + "settingsIngredientCacheDescription": "Cache komposisi", + "@settingsIngredientCacheDescription": {}, + "settingsCacheDeletedSnackbar": "Cache berhasil dibersihkan", + "@settingsCacheDeletedSnackbar": {}, + "aboutPageTitle": "Tentang kami dan dukungan", + "@aboutPageTitle": {}, + "simpleModeHelp": "Sembunyikan beberapa pengaturan lanjutan saat mengedit latihan", + "@simpleModeHelp": {}, + "kilometers": "Kilometer", + "@kilometers": { + "description": "Generated entry for translation for server strings" + }, + "lats": "Otot Punggung Samping", + "@lats": { + "description": "Generated entry for translation for server strings" + }, + "lower_back": "Punggung Bawah", + "@lower_back": { + "description": "Generated entry for translation for server strings" + }, + "minutes": "Menit", + "@minutes": { + "description": "Generated entry for translation for server strings" + }, + "until_failure": "Sampai tidak mampu lagi", + "@until_failure": { + "description": "Generated entry for translation for server strings" + }, + "kg": "kg", + "@kg": { + "description": "Generated entry for translation for server strings" + }, + "done": "Selesai", + "@done": {}, + "overallChangeWeight": "Perubahan keseluruhan", + "@overallChangeWeight": { + "description": "Overall change in weight, added for localization" + }, + "goalTypeMeals": "Dari makanan", + "@goalTypeMeals": { + "description": "added for localization of Class GoalType's filed meals" + }, + "goalTypeBasic": "Dasar", + "@goalTypeBasic": { + "description": "added for localization of Class GoalType's filed basic" + }, + "goalTypeAdvanced": "Lanjutan", + "@goalTypeAdvanced": { + "description": "added for localization of Class GoalType's filed advanced" + }, + "indicatorRaw": "Mentah", + "@indicatorRaw": { + "description": "added for localization of Class Indicator's field text" + }, + "indicatorAvg": "rata-rata", + "@indicatorAvg": { + "description": "added for localization of Class Indicator's field text" + }, + "themeMode": "mode Tema", + "@themeMode": {}, + "systemMode": "Pengaturan sitem", + "@systemMode": {}, + "pull_up_bar": "Palang Pull-up", + "@pull_up_bar": { + "description": "Generated entry for translation for server strings" + }, + "onlyLoggingHelpText": "Centang kotak ini jika Anda hanya ingin mencatat kalori dan tidak ingin menyusun rencana nutrisi secara rinci dengan menu khusus", + "@onlyLoggingHelpText": {}, + "goalEnergy": "Target energi", + "@goalEnergy": {}, + "moreMeasurementEntries": "Tambah pengukuran baru", + "@moreMeasurementEntries": { + "description": "Message shown when the user wants to add new measurement" + }, + "baseNameEnglish": "Semua latihan memerlukan nama dasar dalam Bahasa Inggris", + "@baseNameEnglish": {}, + "add_exercise_image_license": "Gambar harus kompatibel dengan lisensi CC BY SA. Jika ragu, unggah hanya foto yang anda ambil sendiri.", + "@add_exercise_image_license": {}, + "verifiedEmail": "Email terverifikasi", + "@verifiedEmail": {}, + "max_reps": "Repetisi Maksimal", + "@max_reps": { + "description": "Generated entry for translation for server strings" + }, + "miles": "Mil", + "@miles": { + "description": "Generated entry for translation for server strings" + }, + "lb": "lb", + "@lb": { + "description": "Generated entry for translation for server strings" + }, + "verifiedEmailReason": "Anda perlu memverifikasi email untuk dapat menambahkan latihan", + "@verifiedEmailReason": {}, + "baseData": "Dasar dalam Bahasa Inggris", + "@baseData": { + "description": "The base data for an exercise such as category, trained muscles, etc." + }, + "textPromptSubheading": "Tekan tombol untuk mulai", + "@textPromptSubheading": {}, + "cacheWarning": "Karena sistem cache, perubahan mungkin membutuhkan waktu sebelum terlihat di seluruh aplikasi.", + "@cacheWarning": {}, + "textPromptTitle": "Siap memulai?", + "@textPromptTitle": {}, + "yourCurrentNutritionPlanHasNoMealsDefinedYet": "Rencana nutrisi Anda saat ini belum memiliki menu yang ditentukan", + "@yourCurrentNutritionPlanHasNoMealsDefinedYet": { + "description": "Message shown when a nutrition plan doesn't have any meals" + }, + "toAddMealsToThePlanGoToNutritionalPlanDetails": "Untuk menambahkan menu ke dalam rencana, buka detail rencana nutrisi", + "@toAddMealsToThePlanGoToNutritionalPlanDetails": { + "description": "Message shown to guide users to the nutritional plan details page to add meals" + }, + "goalFat": "Target lemak", + "@goalFat": {}, + "errorInfoDescription2": "Anda masih dapat menggunakan aplikasi, namun beberapa fitur mungkin tidak berfungsi.", + "@errorInfoDescription2": {}, + "errorViewDetails": "Rincian teknis", + "@errorViewDetails": {}, + "copyToClipboard": "Salin ke papan klip", + "@copyToClipboard": {}, + "loggedToday": "Dicatat hari ini", + "@loggedToday": {}, + "aboutDonateText": "Meskipun proyek ini gratis dan akan selalu begitu, menjalankan server tetap memerlukan biaya! Pengembangan juga membutuhkan waktu dan tenaga yang tidak sedikit dari para relawan. Kontribusi Anda secara langsung membantu menutup biaya-biaya ini dan menjaga layanan tetap andal.", + "@aboutDonateText": {}, + "aboutContributeText": "Semua jenis kontribusi sangat kami hargai. Baik Anda seorang pengembang, penerjemah, atau sekadar memiliki semangat di bidang kebugaran, setiap bentuk dukungan sangat berarti!", + "@aboutContributeText": {}, + "aboutTranslationListTitle": "Terjemahkan aplikasi", + "@aboutTranslationListTitle": {}, + "others": "Lainnya", + "@others": {}, + "verifiedEmailInfo": "Email verifikasi telah dikirim ke {email}", + "@verifiedEmailInfo": { + "placeholders": { + "email": { + "type": "String" + } + } + }, + "oneNamePerLine": "Satu nama per baris", + "@oneNamePerLine": {}, + "whatVariationsExist": "Apakah ada variasi dari latihan ini? Jika ada, apa saja?", + "@whatVariationsExist": {}, + "images": "Gambar", + "@images": {}, + "fitInWeek": "Bugar dalam seminggu", + "@fitInWeek": {}, + "fitInWeekHelp": "Jika diaktifkan, hari-hari akan berulang dalam siklus mingguan. Jika tidak, hari-hari akan berjalan secara berurutan tanpa memperhatikan awal minggu baru.", + "@fitInWeekHelp": {}, + "calves": "Betis", + "@calves": { + "description": "Generated entry for translation for server strings" + }, + "cardio": "Kardio", + "@cardio": { + "description": "Generated entry for translation for server strings" + }, + "dumbbell": "Dumbel", + "@dumbbell": { + "description": "Generated entry for translation for server strings" + }, + "gym_mat": "Matras Gym", + "@gym_mat": { + "description": "Generated entry for translation for server strings" + }, + "hamstrings": "Paha Belakang", + "@hamstrings": { + "description": "Generated entry for translation for server strings" + }, + "kettlebell": "Kettlebell", + "@kettlebell": { + "description": "Generated entry for translation for server strings" + }, + "kilometers_per_hour": "Kilometer Per Jam", + "@kilometers_per_hour": { + "description": "Generated entry for translation for server strings" + }, + "darkMode": "Selalu mode gelap", + "@darkMode": {}, + "goalMacro": "Target makronutrien", + "@goalMacro": { + "description": "The goal for macronutrients" + }, + "selectMealToLog": "Pilih makanan untuk dicatat ke dalam buku harian", + "@selectMealToLog": {}, + "surplus": "Surplus", + "@surplus": { + "description": "Caloric surplus (either planned or unplanned)" + }, + "kcalValue": "{value} kkal", + "@kcalValue": { + "description": "A value in kcal, e.g. 500 kcal", + "type": "text", + "placeholders": { + "value": { + "type": "String" + } + } + }, + "gValue": "{value} g", + "@gValue": { + "description": "A value in grams, e.g. 5 g", + "type": "text", + "placeholders": { + "value": { + "type": "String" + } + } + }, + "percentValue": "{value} %", + "@percentValue": { + "description": "A value in percent, e.g. 10 %", + "type": "text", + "placeholders": { + "value": { + "type": "String" + } + } + }, + "aboutMastodonTitle": "Mastodon", + "@aboutMastodonTitle": {}, + "variations": "Variasi", + "@variations": { + "description": "Variations of one exercise (e.g. benchpress and benchpress narrow)" + }, + "alsoKnownAs": "Juga dikenal sebagai: {aliases}", + "@alsoKnownAs": { + "placeholders": { + "aliases": { + "type": "String" + } + }, + "description": "List of alternative names for an exercise" + }, + "language": "Bahasa", + "@language": {}, + "contributeExercise": "Tambahkan latihan", + "@contributeExercise": {}, + "addExercise": "Tambah latihan", + "@addExercise": {}, + "translation": "Terjemahan", + "@translation": {}, + "settingsCacheTitle": "Cache", + "@settingsCacheTitle": {}, + "contributeExerciseWarning": "Anda hanya dapat menambahkan latihan jika akun Anda berusia lebih dari {days} hari dan email Anda telah terverifikasi", + "@contributeExerciseWarning": { + "description": "Number of days before which a person can add exercise", + "placeholders": { + "days": { + "type": "String", + "example": "14" + } + } + }, + "arms": "Lengan", + "@arms": { + "description": "Generated entry for translation for server strings" + }, + "chest": "Dada", + "@chest": { + "description": "Generated entry for translation for server strings" + }, + "plates": "Lempeng Beban", + "@plates": { + "description": "Generated entry for translation for server strings" + }, + "quads": "Paha Depan", + "@quads": { + "description": "Generated entry for translation for server strings" + }, + "none__bodyweight_exercise_": "Tanpa alat (Latihan Berat Badan Sendiri)", + "@none__bodyweight_exercise_": { + "description": "Generated entry for translation for server strings" + }, + "deficit": "defisit", + "@deficit": { + "description": "Caloric deficit (either planned or unplanned)" + }, + "addSuperset": "Tambah superset", + "@addSuperset": {}, + "isRestDay": "Hari ini adalah hari istirahat", + "@isRestDay": {}, + "apiTokenValidChars": "Kunci API hanya boleh berisi huruf a-f, angka 0-9 dan harus berjumlah 40 karakter", + "@apiTokenValidChars": { + "description": "Error message when the user tries to input a API key with forbidden characters" + }, + "needsLogsToAdvance": "Perlu log untuk melanjutkan", + "@needsLogsToAdvance": {}, + "invalidApiToken": "Mohon masukan kunci API yang valid", + "@invalidApiToken": { + "description": "Error message when the user enters an invalid API key" + }, + "goalProtein": "Target protein", + "@goalProtein": {}, + "noRoutines": "Kamu tidak memiliki rutinitas", + "@noRoutines": {}, + "apiToken": "Token API", + "@apiToken": {}, + "supersetNr": "Superset ke-{nr}", + "@supersetNr": { + "description": "Header in form indicating the number of the current exercise. Can also be translated as something like 'Superset Nr. xy'.", + "type": "text", + "placeholders": { + "nr": { + "type": "String" + } + } + }, + "aboutContributeTitle": "Kontribusi", + "@aboutContributeTitle": {}, + "translateExercise": "Terjemahkan latihan ini sekarang", + "@translateExercise": {}, + "enterMinCharacters": "Silakan masukan minimal {min} karakter", + "@enterMinCharacters": { + "description": "Error message when the user hasn't entered the minimum amount characters in a form", + "type": "text", + "placeholders": { + "min": { + "type": "String" + } + } + }, + "swiss_ball": "Bola Gym", + "@swiss_ball": { + "description": "Generated entry for translation for server strings" + }, + "needsLogsToAdvanceHelp": "Pilih opsi ini jika Anda ingin rutinitas berlanjut ke hari berikutnya hanya setelah Anda mencatat latihan pada hari tersebut", + "@needsLogsToAdvanceHelp": {}, + "setHasNoExercises": "Set ini belum memiliki latihan apa pun!", + "@setHasNoExercises": {}, + "aboutBugsListTitle": "Laporkan masalah atau usulkan fitur", + "@aboutBugsListTitle": {}, + "errorCouldNotConnectToServerDetails": "Aplikasi tidak dapat terhubung ke server. Silakan periksa koneksi internet atau URL server anda, lalu coba lagi. Jika masalah terus berlanjut, hubungi administrator server.", + "@errorCouldNotConnectToServerDetails": {}, + "unVerifiedEmail": "Email belum diverifikasi", + "@unVerifiedEmail": {}, + "progressionRules": "Latihan ini memiliki aturan peningkatan dan tidak dapat diedit melalui aplikasi mobile. Silakan gunakan aplikasi web untuk mengedit latihan ini.", + "@progressionRules": {}, + "setHasProgression": "Set memiliki peningkatan", + "@setHasProgression": {}, + "barbell": "Barbel", + "@barbell": { + "description": "Generated entry for translation for server strings" + }, + "glutes": "Bokong", + "@glutes": { + "description": "Generated entry for translation for server strings" + }, + "resistance_band": "Karet Latihan", + "@resistance_band": { + "description": "Generated entry for translation for server strings" + }, + "lightMode": "Selalu mode terang", + "@lightMode": {} +} diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index 3e5c59bf..54fb5a6a 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -113,7 +113,7 @@ "@addMeal": {}, "addIngredient": "Adicionar ingrediente", "@addIngredient": {}, - "logIngredient": "Salvar no gráfico de nutrição", + "logIngredient": "Registar ingrediente no diário de nutrição", "@logIngredient": {}, "nutritionalDiary": "Gráfico nutricional", "@nutritionalDiary": {}, @@ -357,7 +357,7 @@ "@jumpTo": { "description": "Imperative. Label used in popup allowing the user to jump to a specific exercise while in the gym mode" }, - "logMeal": "Registrar esta refeição", + "logMeal": "Registar esta refeição no diário de nutrição", "@logMeal": {}, "measurementCategoriesHelpText": "Categoria de medição, como 'bíceps' ou 'gordura corporal'", "@measurementCategoriesHelpText": {}, @@ -618,7 +618,7 @@ "@kettlebell": {}, "none__bodyweight_exercise_": "nenhum (somente peso do corpo)", "@none__bodyweight_exercise_": {}, - "aboutPageTitle": "Sobre Wger", + "aboutPageTitle": "Sobre nós & suporte", "@aboutPageTitle": {}, "enterMinCharacters": "Por favor, selecione ao menos {min} de caracteres", "@enterMinCharacters": { @@ -742,9 +742,9 @@ }, "aboutMastodonTitle": "Mastodon", "@aboutMastodonTitle": {}, - "aboutDonateTitle": "Doar", + "aboutDonateTitle": "Faz uma doação", "@aboutDonateTitle": {}, - "aboutDonateText": "Nos compre um café para ajudar o projeto, pagar os custos do servidor e nos manter energizados", + "aboutDonateText": "Embora o projeto seja, e será sempre, gratuito, manter o servidor não o é! O desenvolvimento também leva bastante do tempo dos voluntários. O teu contributo suporta diretamente estes custos ajudando a manter o serviço constante.", "@aboutDonateText": {}, "onlyLogging": "Só controlar calorias", "@onlyLogging": {}, @@ -873,7 +873,7 @@ "@lightMode": {}, "systemMode": "Configurações do sistema", "@systemMode": {}, - "themeMode": "Modo temático", + "themeMode": "Tema", "@themeMode": {}, "darkMode": "Modo sempre escuro", "@darkMode": {}, @@ -908,5 +908,105 @@ "restTime": "Tempo de descanso", "@restTime": {}, "isRestDayHelp": "Favor notar que todos os sets e exercícios serão removidos quando você marcar um dia como dia de descanso.", - "@isRestDayHelp": {} + "@isRestDayHelp": {}, + "apiToken": "Códibo API", + "@apiToken": {}, + "errorInfoDescription": "Lamentamos, mas algo correu mal. Podes ajudar a corrigir isto reportando o erro no GitHub.", + "@errorInfoDescription": {}, + "supersetNr": "Superset {nr}", + "@supersetNr": { + "description": "Header in form indicating the number of the current exercise. Can also be translated as something like 'Superset Nr. xy'.", + "type": "text", + "placeholders": { + "nr": { + "type": "String" + } + } + }, + "needsLogsToAdvance": "Precisa de dados para avançar", + "@needsLogsToAdvance": {}, + "needsLogsToAdvanceHelp": "Seleciona se queres que a rotina progrida para o dia seguinte agendado apenas se registaste um treino no dia", + "@needsLogsToAdvanceHelp": {}, + "min": "Min", + "@min": {}, + "max": "Máximo", + "@max": {}, + "resultingRoutine": "Rotina resultante", + "@resultingRoutine": {}, + "fitInWeekHelp": "Se selecionado, os dias repetir-se-ão num ciclo semanal, caso contrário, os dias seguir-se-ão sequencialmente independentemente do início de nova semana.", + "@fitInWeekHelp": {}, + "fitInWeek": "Encaixa na semana", + "@fitInWeek": {}, + "simpleModeHelp": "Esconde alguns dos parâmetros mais avançados quando editando exercícios", + "@simpleModeHelp": {}, + "addSuperset": "Adiciona um superset", + "@addSuperset": {}, + "setHasNoExercises": "Esta série ainda não tem exercícios!", + "@setHasNoExercises": {}, + "resistance_band": "Banda elástica", + "@resistance_band": { + "description": "Generated entry for translation for server strings" + }, + "yourCurrentNutritionPlanHasNoMealsDefinedYet": "O teu plano nutricional atual não tem refeições definidas", + "@yourCurrentNutritionPlanHasNoMealsDefinedYet": { + "description": "Message shown when a nutrition plan doesn't have any meals" + }, + "toAddMealsToThePlanGoToNutritionalPlanDetails": "Para adicionar refeições ao plano, vai aos detalhes do plano nutricional", + "@toAddMealsToThePlanGoToNutritionalPlanDetails": { + "description": "Message shown to guide users to the nutritional plan details page to add meals" + }, + "errorInfoDescription2": "Podes continuar a usar a aplicação, mas algumas funções podem não funcionar.", + "@errorInfoDescription2": {}, + "errorCouldNotConnectToServer": "Não foi possível ligar ao servidor", + "@errorCouldNotConnectToServer": {}, + "aboutBugsListTitle": "Relata um problema ou sugere uma funcionalidade", + "@aboutBugsListTitle": {}, + "aboutTranslationListTitle": "Traduz a aplicação", + "@aboutTranslationListTitle": {}, + "aboutSourceListTitle": "Vê o código fonte", + "@aboutSourceListTitle": {}, + "aboutWhySupportTitle": "Código aberto & livre para usar ❤️", + "@aboutWhySupportTitle": {}, + "aboutContributeTitle": "Contribui", + "@aboutContributeTitle": {}, + "aboutContributeText": "Todos os tipos de contribuição são bem-vindos. Quer sejas um desenvolvedor, um tradutor ou apenas um apaixonado pelo exercício, todas as migalhas de suporte são apreciadas!", + "@aboutContributeText": {}, + "aboutJoinCommunityTitle": "Junta-te à comunidade", + "@aboutJoinCommunityTitle": {}, + "aboutDiscordTitle": "Discord", + "@aboutDiscordTitle": {}, + "others": "Outros", + "@others": {}, + "setHasProgression": "A série tem progressão", + "@setHasProgression": {}, + "simpleMode": "Modo simples", + "@simpleMode": {}, + "progressionRules": "Este exercíco tem regras de progressão e não pode ser editado na aplicação móvel. Por favor, usa a aplicação web para editar este exercício.", + "@progressionRules": {}, + "selectAvailablePlates": "Seleciona anilhas disponíveis", + "@selectAvailablePlates": {}, + "useApiToken": "Usa código API", + "@useApiToken": {}, + "barWeight": "Peso da barra", + "@barWeight": {}, + "invalidApiToken": "Por favor, introduz uma chave API válida", + "@invalidApiToken": { + "description": "Error message when the user enters an invalid API key" + }, + "useColors": "Usa cores", + "@useColors": {}, + "useUsernameAndPassword": "Usa nome de utilizador e palavra passe", + "@useUsernameAndPassword": {}, + "apiTokenValidChars": "Uma chave API pode apenas conter letras a-f, números 0-9 e ter exatamente 40 caracteres", + "@apiTokenValidChars": { + "description": "Error message when the user tries to input a API key with forbidden characters" + }, + "errorViewDetails": "Detalhes técnicos", + "@errorViewDetails": {}, + "errorCouldNotConnectToServerDetails": "A aplicação não conseguiu ligar-se ao servidor. Por favor, verifica a ligação à rede ou o URL do servidor e tenta novamente. Se o problema persistir, contacta o administrador do servidor.", + "@errorCouldNotConnectToServerDetails": {}, + "copyToClipboard": "Copia para a memória", + "@copyToClipboard": {}, + "setHasProgressionWarning": "Por favor, nota que, de momento, não é possível editar todos os valores para uma série na aplicação móvel ou configurar a progressão automática. Por agora, por favor, usa a aplicação web.", + "@setHasProgressionWarning": {} } diff --git a/lib/l10n/app_pt_BR.arb b/lib/l10n/app_pt_BR.arb index bacc9a10..97bfa4f9 100644 --- a/lib/l10n/app_pt_BR.arb +++ b/lib/l10n/app_pt_BR.arb @@ -31,7 +31,7 @@ "@logout": { "description": "Text for logout button" }, - "notes": "Notas", + "notes": "Comentários", "@notes": { "description": "Personal notes, e.g. for a workout session" }, @@ -95,7 +95,7 @@ }, "confirmPassword": "Confirme sua senha", "@confirmPassword": {}, - "comment": "Comente", + "comment": "Comentário", "@comment": { "description": "Comment, additional information" }, @@ -227,7 +227,7 @@ }, "percentEnergy": "Porcentagem de energia", "@percentEnergy": {}, - "searchNamesInEnglish": "Pesquise também por nomes em inglês", + "searchNamesInEnglish": "Procure também nomes em inglês", "@searchNamesInEnglish": {}, "exercise": "Exercício", "@exercise": { @@ -451,7 +451,7 @@ "@aboutMastodonTitle": {}, "selectEntry": "Por favor, selecione uma entrada", "@selectEntry": {}, - "noMatchingExerciseFound": "Nenhum exercício correspondente encontrado", + "noMatchingExerciseFound": "Sem exercícios correspondentes encontrados", "@noMatchingExerciseFound": { "description": "Message returned if no exercises match the searched string" }, @@ -469,7 +469,7 @@ "@labelBottomNavWorkout": { "description": "Label used in bottom navigation, use a short word" }, - "reps": "Reps", + "reps": "Repetições", "@reps": { "description": "Shorthand for repetitions, used when space constraints are tighter" }, @@ -930,5 +930,59 @@ "biceps": "Bíceps", "@biceps": { "description": "Generated entry for translation for server strings" - } + }, + "useApiToken": "Usar API Token", + "@useApiToken": {}, + "useUsernameAndPassword": "Usar usuário e senha", + "@useUsernameAndPassword": {}, + "apiToken": "API Token", + "@apiToken": {}, + "invalidApiToken": "Por favor, entre com a API key válida", + "@invalidApiToken": { + "description": "Error message when the user enters an invalid API key" + }, + "apiTokenValidChars": "A chave API deve ter apenas letras a-f, números 0-9 e ter exatamente 40 caracteres", + "@apiTokenValidChars": { + "description": "Error message when the user tries to input a API key with forbidden characters" + }, + "routines": "Rotinas", + "@routines": {}, + "newRoutine": "Nova rotina", + "@newRoutine": {}, + "noRoutines": "Não tens rotinas", + "@noRoutines": {}, + "restTime": "Tempo de descanso", + "@restTime": {}, + "sets": "Conjuntos", + "@sets": { + "description": "The number of sets to be done for one exercise" + }, + "exerciseNr": "Exercício {nr}", + "@exerciseNr": { + "description": "Header in form indicating the number of the current exercise. Can also be translated as something like 'Set Nr. xy'.", + "type": "text", + "placeholders": { + "nr": { + "type": "String" + } + } + }, + "supersetNr": "Superset {nr}", + "@supersetNr": { + "description": "Header in form indicating the number of the current exercise. Can also be translated as something like 'Superset Nr. xy'.", + "type": "text", + "placeholders": { + "nr": { + "type": "String" + } + } + }, + "restDay": "Dia de descanso", + "@restDay": {}, + "isRestDay": "É dia de descanso", + "@isRestDay": {}, + "isRestDayHelp": "Por favor, note que todos os conjuntos e exercícios serão removidos quando marcar um dia como um dia de descanso.", + "@isRestDayHelp": {}, + "needsLogsToAdvance": "Precisa de logs para avançar", + "@needsLogsToAdvance": {} } diff --git a/lib/l10n/app_pt_PT.arb b/lib/l10n/app_pt_PT.arb new file mode 100644 index 00000000..a5a7c90e --- /dev/null +++ b/lib/l10n/app_pt_PT.arb @@ -0,0 +1,1062 @@ +{ + "login": "Iniciar sessão", + "@login": { + "description": "Text for login button" + }, + "success": "Sucesso", + "@success": { + "description": "Message when an action completed successfully, usually used as a heading" + }, + "noMatchingExerciseFound": "Não foram encontrados exercícios", + "@noMatchingExerciseFound": { + "description": "Message returned if no exercises match the searched string" + }, + "labelDashboard": "Painel", + "@labelDashboard": { + "description": "Title for screen dashboard" + }, + "exercise": "Exercício", + "@exercise": { + "description": "An exercise for a workout" + }, + "usernameValidChars": "O nome de utilizador só pode conter letras, números e os caracteres @, +, ., - e _", + "@usernameValidChars": { + "description": "Error message when the user tries to register a username with forbidden characters" + }, + "searchNamesInEnglish": "Também procurar nomes em inglês", + "@searchNamesInEnglish": {}, + "useCustomServer": "Usar servidor personalizado", + "@useCustomServer": { + "description": "Toggle button allowing users to switch between the default and a custom wger server" + }, + "equipment": "Equipamento", + "@equipment": { + "description": "Equipment needed to perform an exercise" + }, + "userProfile": "O teu perfil", + "@userProfile": {}, + "register": "Registar", + "@register": { + "description": "Text for registration button" + }, + "comment": "Comentário", + "@comment": { + "description": "Comment, additional information" + }, + "customServerHint": "Introduz o endereço do teu próprio servidor, senão será usado o predefinido", + "@customServerHint": { + "description": "Hint text for the form where the users can enter their own wger instance" + }, + "useDefaultServer": "Usar servidor predefinido", + "@useDefaultServer": { + "description": "Toggle button allowing users to switch between the default and a custom wger server" + }, + "invalidUrl": "Introduz um URL válido", + "@invalidUrl": { + "description": "Error message when the user enters an invalid URL, e.g. in the login form" + }, + "passwordsDontMatch": "As palavras-passe não coincidem", + "@passwordsDontMatch": { + "description": "Error message when the user enters two different passwords during registration" + }, + "passwordTooShort": "A palavra-passe é demasiado curta", + "@passwordTooShort": { + "description": "Error message when the user a password that is too short" + }, + "selectAvailablePlates": "Selecionar discos disponíveis", + "@selectAvailablePlates": {}, + "barWeight": "Peso da barra", + "@barWeight": {}, + "useColors": "Usar cores", + "@useColors": {}, + "password": "Palavra-passe", + "@password": {}, + "confirmPassword": "Confirmar palavra-passe", + "@confirmPassword": {}, + "invalidEmail": "Introduz um e-mail válido", + "@invalidEmail": { + "description": "Error message when the user enters an invalid email" + }, + "email": "Endereço de e-mail", + "@email": {}, + "username": "Nome de utilizador", + "@username": {}, + "invalidUsername": "Introduz um nome de utilizador válido", + "@invalidUsername": { + "description": "Error message when the user enters an invalid username" + }, + "useApiToken": "Usar Token da API", + "@useApiToken": {}, + "useUsernameAndPassword": "Usar nome de utilizador e palavra-passe", + "@useUsernameAndPassword": {}, + "apiToken": "Token da API", + "@apiToken": {}, + "invalidApiToken": "Introduz uma chave API válida", + "@invalidApiToken": { + "description": "Error message when the user enters an invalid API key" + }, + "apiTokenValidChars": "Uma chave API só pode conter letras de a-f, números de 0-9 e ter exatamente 40 caracteres", + "@apiTokenValidChars": { + "description": "Error message when the user tries to input a API key with forbidden characters" + }, + "customServerUrl": "URL da instância wger", + "@customServerUrl": { + "description": "Label in the form where the users can enter their own wger instance" + }, + "reset": "Repor", + "@reset": { + "description": "Button text allowing the user to reset the entered values to the default" + }, + "registerInstead": "Ainda não tens conta? Regista-te agora", + "@registerInstead": {}, + "loginInstead": "Já tens conta? Inicia sessão", + "@loginInstead": {}, + "labelBottomNavWorkout": "Treino", + "@labelBottomNavWorkout": { + "description": "Label used in bottom navigation, use a short word" + }, + "labelBottomNavNutrition": "Nutrição", + "@labelBottomNavNutrition": { + "description": "Label used in bottom navigation, use a short word" + }, + "labelWorkoutLogs": "Registos de treino", + "@labelWorkoutLogs": { + "description": "(Workout) logs" + }, + "labelWorkoutPlan": "Plano de treino", + "@labelWorkoutPlan": { + "description": "Title for screen workout plan" + }, + "successfullyDeleted": "Eliminado", + "@successfullyDeleted": { + "description": "Message when an item was successfully deleted" + }, + "successfullySaved": "Guardado", + "@successfullySaved": { + "description": "Message when an item was successfully saved" + }, + "exerciseList": "Lista de exercícios", + "@exerciseList": {}, + "exercises": "Exercícios", + "@exercises": { + "description": "Multiple exercises for a workout" + }, + "exerciseName": "Nome do exercício", + "@exerciseName": { + "description": "Label for the name of a workout exercise" + }, + "searchExercise": "Procura um exercício para adicionar", + "@searchExercise": { + "description": "Label on set form. Selected exercises are added to the set" + }, + "muscles": "Músculos", + "@muscles": { + "description": "(main) muscles trained by an exercise" + }, + "musclesSecondary": "Músculos secundários", + "@musclesSecondary": { + "description": "secondary muscles trained by an exercise" + }, + "category": "Categoria", + "@category": { + "description": "Category for an exercise, ingredient, etc." + }, + "routines": "Rotinas", + "@routines": {}, + "newRoutine": "Nova rotina", + "@newRoutine": {}, + "noRoutines": "Ainda não tens rotinas", + "@noRoutines": {}, + "reps": "Repetições", + "@reps": { + "description": "Shorthand for repetitions, used when space constraints are tighter" + }, + "sets": "Séries", + "@sets": { + "description": "The number of sets to be done for one exercise" + }, + "rir": "Repetições em Reserva", + "@rir": { + "description": "Shorthand for Repetitions In Reserve" + }, + "restTime": "Tempo de descanso", + "@restTime": {}, + "rirNotUsed": "ReR não utilizado", + "@rirNotUsed": { + "description": "Label used in RiR slider when the RiR value is not used/saved for the current setting or log" + }, + "useMetric": "Usar unidades métricas para peso corporal", + "@useMetric": {}, + "weightUnit": "Unidade de peso", + "@weightUnit": {}, + "set": "Série", + "@set": { + "description": "A set in a workout plan" + }, + "needsLogsToAdvance": "Precisa de registos para avançar", + "@needsLogsToAdvance": {}, + "repetitionUnit": "Unidade de repetição", + "@repetitionUnit": {}, + "dayDescriptionHelp": "Descrição do que é feito neste dia (ex.: \"dia de puxar\") ou que músculos são treinados (ex.: \"peito e ombros\")", + "@dayDescriptionHelp": {}, + "exerciseNr": "Exercício {nr}", + "@exerciseNr": { + "description": "Header in form indicating the number of the current exercise. Can also be translated as something like 'Set Nr. xy'.", + "type": "text", + "placeholders": { + "nr": { + "type": "String" + } + } + }, + "supersetNr": "Superset {nr}", + "@supersetNr": { + "description": "Header in form indicating the number of the current exercise. Can also be translated as something like 'Superset Nr. xy'.", + "type": "text", + "placeholders": { + "nr": { + "type": "String" + } + } + }, + "sameRepetitions": "Se fizeres o mesmo número de repetições e peso em todas as séries, basta preencher uma linha. Por exemplo: para 4 séries de 10, escreve \"10\" e fica automaticamente \"4 x 10\".", + "@sameRepetitions": {}, + "impression": "Impressão", + "@impression": { + "description": "General impression (e.g. for a workout session) such as good, bad, etc." + }, + "notes": "Notas", + "@notes": { + "description": "Personal notes, e.g. for a workout session" + }, + "workoutSession": "Sessão de treino", + "@workoutSession": { + "description": "A (logged) workout session" + }, + "isRestDayHelp": "Nota que todas as séries e exercícios serão removidos se marcares o dia como descanso.", + "@isRestDayHelp": {}, + "restDay": "Dia de descanso", + "@restDay": {}, + "isRestDay": "É dia de descanso", + "@isRestDay": {}, + "selectExercises": "Se quiseres fazer um superset, podes procurar vários exercícios - eles serão agrupados", + "@selectExercises": {}, + "gymMode": "Modo ginásio", + "@gymMode": { + "description": "Label when starting the gym mode" + }, + "plateCalculator": "Discos", + "@plateCalculator": { + "description": "Label used for the plate calculator in the gym mode" + }, + "plateCalculatorNotDivisible": "Não é possível atingir o peso com os discos disponíveis", + "@plateCalculatorNotDivisible": { + "description": "Error message when the current weight is not reachable with plates (e.g. 33.1 kg)" + }, + "pause": "Pausa", + "@pause": { + "description": "Noun, not an imperative! Label used for the pause when using the gym mode" + }, + "jumpTo": "Ir para", + "@jumpTo": { + "description": "Imperative. Label used in popup allowing the user to jump to a specific exercise while in the gym mode" + }, + "todaysWorkout": "O teu treino de hoje", + "@todaysWorkout": {}, + "logHelpEntries": "Se houver várias entradas no mesmo dia com o mesmo número de repetições mas pesos diferentes, só aparece no gráfico a de maior peso.", + "@logHelpEntries": {}, + "logHelpEntriesUnits": "Apenas são mostradas entradas com unidade de peso (kg ou lb) e repetições, outras como tempo ou até falhar são ignoradas.", + "@logHelpEntriesUnits": {}, + "description": "Descrição", + "@description": {}, + "name": "Nome", + "@name": { + "description": "Name for a workout or nutritional plan" + }, + "save": "Guardar", + "@save": {}, + "verify": "Verificar", + "@verify": {}, + "addSet": "Adicionar série", + "@addSet": { + "description": "Label for the button that adds a set (to a workout day)" + }, + "addMeal": "Adicionar refeição", + "@addMeal": {}, + "mealLogged": "Refeição registada no diário", + "@mealLogged": {}, + "ingredientLogged": "Ingrediente registado no diário", + "@ingredientLogged": {}, + "logMeal": "Registar refeição no diário nutricional", + "@logMeal": {}, + "addIngredient": "Adicionar ingrediente", + "@addIngredient": {}, + "logIngredient": "Registar ingrediente no diário nutricional", + "@logIngredient": {}, + "searchIngredient": "Procurar ingrediente", + "@searchIngredient": { + "description": "Label on ingredient search form" + }, + "nutritionalPlan": "Plano nutricional", + "@nutritionalPlan": {}, + "nutritionalDiary": "Diário nutricional", + "@nutritionalDiary": {}, + "nutritionalPlans": "Planos nutricionais", + "@nutritionalPlans": {}, + "noNutritionalPlans": "Ainda não tens planos nutricionais", + "@noNutritionalPlans": { + "description": "Message shown when the user has no nutritional plans" + }, + "onlyLogging": "Registar apenas calorias", + "@onlyLogging": {}, + "onlyLoggingHelpText": "Marca esta opção se quiseres registar só as calorias, sem plano nutricional detalhado", + "@onlyLoggingHelpText": {}, + "goalMacro": "Objetivos de macronutrientes", + "@goalMacro": { + "description": "The goal for macronutrients" + }, + "selectMealToLog": "Seleciona uma refeição para registar no diário", + "@selectMealToLog": {}, + "yourCurrentNutritionPlanHasNoMealsDefinedYet": "O teu plano nutricional atual não tem refeições definidas", + "@yourCurrentNutritionPlanHasNoMealsDefinedYet": { + "description": "Message shown when a nutrition plan doesn't have any meals" + }, + "toAddMealsToThePlanGoToNutritionalPlanDetails": "Para adicionar refeições ao plano, vai aos detalhes do plano nutricional", + "@toAddMealsToThePlanGoToNutritionalPlanDetails": { + "description": "Message shown to guide users to the nutritional plan details page to add meals" + }, + "goalEnergy": "Objetivo energético", + "@goalEnergy": {}, + "goalProtein": "Objetivo de proteína", + "@goalProtein": {}, + "goalCarbohydrates": "Objetivo de hidratos de carbono", + "@goalCarbohydrates": {}, + "goalFat": "Objetivo de gordura", + "@goalFat": {}, + "goalFiber": "Objetivo de fibra", + "@goalFiber": {}, + "anErrorOccurred": "Ocorreu um erro!", + "@anErrorOccurred": {}, + "errorInfoDescription": "Lamentamos, algo correu mal. Podes ajudar a corrigir isto ao reportar o problema no GitHub.", + "@errorInfoDescription": {}, + "errorInfoDescription2": "Podes continuar a usar a app, mas algumas funcionalidades podem não funcionar.", + "@errorInfoDescription2": {}, + "errorViewDetails": "Detalhes técnicos", + "@errorViewDetails": {}, + "errorCouldNotConnectToServer": "Não foi possível ligar ao servidor", + "@errorCouldNotConnectToServer": {}, + "copyToClipboard": "Copiar para a área de transferência", + "@copyToClipboard": {}, + "weight": "Peso", + "@weight": { + "description": "The weight of a workout log or body weight entry" + }, + "min": "Mín", + "@min": {}, + "max": "Máx", + "@max": {}, + "chartAllTimeTitle": "{name} total", + "@chartAllTimeTitle": { + "description": "All-time chart of 'name' (e.g. 'weight', 'body fat' etc.)", + "type": "text", + "placeholders": { + "name": { + "type": "String" + } + } + }, + "chart30DaysTitle": "{name} últimos 30 dias", + "@chart30DaysTitle": { + "description": "last 30 days chart of 'name' (e.g. 'weight', 'body fat' etc.)", + "type": "text", + "placeholders": { + "name": { + "type": "String" + } + } + }, + "chartDuringPlanTitle": "{chartName} durante o plano nutricional {planName}", + "@chartDuringPlanTitle": { + "description": "chart of 'chartName' (e.g. 'weight', 'body fat' etc.) logged during plan", + "type": "text", + "placeholders": { + "chartName": { + "type": "String" + }, + "planName": { + "type": "String" + } + } + }, + "measurement": "Medição", + "@measurement": {}, + "measurementCategoriesHelpText": "Categoria de medição, como 'bíceps' ou 'gordura corporal'", + "@measurementCategoriesHelpText": {}, + "measurementEntriesHelpText": "Unidade usada para medir, como 'cm' ou '%'", + "@measurementEntriesHelpText": {}, + "date": "Data", + "@date": { + "description": "The date of a workout log or body weight entry" + }, + "value": "Valor", + "@value": { + "description": "The value of a measurement entry" + }, + "time": "Hora", + "@time": { + "description": "The time of a meal or workout" + }, + "timeStart": "Hora de início", + "@timeStart": { + "description": "The starting time of a workout" + }, + "timeEnd": "Hora de fim", + "@timeEnd": { + "description": "The end time of a workout" + }, + "timeStartAhead": "Hora de início não pode ser depois da hora de fim", + "@timeStartAhead": {}, + "ingredient": "Ingrediente", + "@ingredient": {}, + "energy": "Energia", + "@energy": { + "description": "Energy in a meal, ingredient etc. e.g. in kJ" + }, + "planned": "Planeado", + "@planned": { + "description": "Header for the column of 'planned' nutritional values, i.e. what should be eaten" + }, + "logged": "Registado", + "@logged": { + "description": "Header for the column of 'logged' nutritional values, i.e. what was eaten" + }, + "today": "Hoje", + "@today": {}, + "loggedToday": "Registado hoje", + "@loggedToday": {}, + "weekAverage": "Média de 7 dias", + "@weekAverage": { + "description": "Header for the column of '7 day average' nutritional values, i.e. what was logged last week" + }, + "surplus": "excedente", + "@surplus": { + "description": "Caloric surplus (either planned or unplanned)" + }, + "deficit": "défice", + "@deficit": { + "description": "Caloric deficit (either planned or unplanned)" + }, + "difference": "Diferença", + "@difference": {}, + "percentEnergy": "Percentagem da energia", + "@percentEnergy": {}, + "gPerBodyKg": "g por kg de corpo", + "@gPerBodyKg": { + "description": "Label used for total sums of e.g. calories or similar in grams per Kg of body weight" + }, + "total": "Total", + "@total": { + "description": "Label used for total sums of e.g. calories or similar" + }, + "kcal": "kcal", + "@kcal": { + "description": "Energy in a meal in kilocalories, kcal" + }, + "kJ": "kJ", + "@kJ": { + "description": "Energy in a meal in kilo joules, kJ" + }, + "g": "g", + "@g": { + "description": "Abbreviation for gram" + }, + "gValue": "{value} g", + "@gValue": { + "description": "A value in grams, e.g. 5 g", + "type": "text", + "placeholders": { + "value": { + "type": "String" + } + } + }, + "logout": "Terminar sessão", + "@logout": { + "description": "Text for logout button" + }, + "noIngredientsDefined": "Ainda não há ingredientes definidos", + "@noIngredientsDefined": {}, + "routineDays": "Dias na rotina", + "@routineDays": {}, + "newDay": "Novo dia", + "@newDay": {}, + "newSet": "Nova série", + "@newSet": { + "description": "Header when adding a new set to a workout day" + }, + "kcalValue": "{value} kcal", + "@kcalValue": { + "description": "A value in kcal, e.g. 500 kcal", + "type": "text", + "placeholders": { + "value": { + "type": "String" + } + } + }, + "protein": "Proteína", + "@protein": {}, + "resultingRoutine": "Rotina resultante", + "@resultingRoutine": {}, + "errorCouldNotConnectToServerDetails": "A aplicação não conseguiu ligar ao servidor. Verifica a ligação à internet ou o URL do servidor e tenta outra vez. Se continuar, contacta o administrador do servidor.", + "@errorCouldNotConnectToServerDetails": {}, + "needsLogsToAdvanceHelp": "Seleciona se queres que a rotina avance para o próximo dia apenas se registares um treino", + "@needsLogsToAdvanceHelp": {}, + "start": "Início", + "@start": { + "description": "Label on button to start the gym mode (i.e., an imperative)" + }, + "energyShort": "E", + "@energyShort": { + "description": "The first letter or short name of the word 'Energy', used in overviews" + }, + "macronutrients": "Macronutrientes", + "@macronutrients": {}, + "proteinShort": "P", + "@proteinShort": { + "description": "The first letter or short name of the word 'Protein', used in overviews" + }, + "measurements": "Medições", + "@measurements": { + "description": "Categories for the measurements such as biceps size, body fat, etc." + }, + "percentValue": "{value} %", + "@percentValue": { + "description": "A value in percent, e.g. 10 %", + "type": "text", + "placeholders": { + "value": { + "type": "String" + } + } + }, + "carbohydrates": "Hidratos de carbono", + "@carbohydrates": {}, + "carbohydratesShort": "C", + "@carbohydratesShort": { + "description": "The first letter or short name of the word 'Carbohydrates', used in overviews" + }, + "sugars": "Açúcares", + "@sugars": {}, + "fat": "Gordura", + "@fat": {}, + "fatShort": "F", + "@fatShort": { + "description": "The first letter or short name of the word 'Fat', used in overviews" + }, + "fiber": "Fibras", + "@fiber": {}, + "sodium": "Sódio", + "@sodium": {}, + "amount": "Quantidade", + "@amount": { + "description": "The amount (e.g. in grams) of an ingredient in a meal" + }, + "unit": "Unidade", + "@unit": { + "description": "The unit used for a repetition (kg, time, etc.)" + }, + "newEntry": "Nova entrada", + "@newEntry": { + "description": "Title when adding a new entry such as a weight or log entry" + }, + "noMeasurementEntries": "Ainda não tens registos de medições", + "@noMeasurementEntries": {}, + "aboutDescription": "Obrigado por usares o wger! O wger é um projeto colaborativo de código aberto, feito por fãs de fitness de todo o mundo.", + "@aboutDescription": { + "description": "Text in the about dialog" + }, + "aboutDonateTitle": "Fazer um donativo", + "@aboutDonateTitle": {}, + "aboutDonateText": "Apesar de gratuito e assim continuará, manter o servidor tem custos! O desenvolvimento também exige muito tempo dos voluntários. A tua ajuda apoia diretamente estes custos.", + "@aboutDonateText": {}, + "aboutContributeTitle": "Contribuir", + "@aboutContributeTitle": {}, + "aboutContributeText": "Todos os tipos de contribuição são bem-vindos. Sejas programador, tradutor ou apenas apaixonado por fitness, toda a ajuda conta!", + "@aboutContributeText": {}, + "aboutBugsListTitle": "Reportar um problema ou sugerir uma funcionalidade", + "@aboutBugsListTitle": {}, + "aboutTranslationListTitle": "Traduzir a aplicação", + "@aboutTranslationListTitle": {}, + "aboutSourceListTitle": "Ver código-fonte", + "@aboutSourceListTitle": {}, + "aboutJoinCommunityTitle": "Junta-te à comunidade", + "@aboutJoinCommunityTitle": {}, + "aboutMastodonTitle": "Mastodon", + "@aboutMastodonTitle": {}, + "aboutDiscordTitle": "Discord", + "@aboutDiscordTitle": {}, + "others": "Outros", + "@others": {}, + "calendar": "Calendário", + "@calendar": {}, + "goToToday": "Ir para hoje", + "@goToToday": { + "description": "Label on button to jump back to 'today' in the calendar widget" + }, + "enterValue": "Introduz um valor", + "@enterValue": { + "description": "Error message when the user hasn't entered a value on a required field" + }, + "selectEntry": "Seleciona uma entrada", + "@selectEntry": {}, + "selectExercise": "Seleciona um exercício", + "@selectExercise": { + "description": "Error message when the user hasn't selected an exercise in the form" + }, + "enterCharacters": "Escreve entre {min} e {max} caracteres", + "@enterCharacters": { + "description": "Error message when the user hasn't entered the correct number of characters in a form", + "type": "text", + "placeholders": { + "min": { + "type": "String" + }, + "max": { + "type": "String" + } + } + }, + "enterMinCharacters": "Escreve pelo menos {min} caracteres", + "@enterMinCharacters": { + "description": "Error message when the user hasn't entered the minimum amount characters in a form", + "type": "text", + "placeholders": { + "min": { + "type": "String" + } + } + }, + "baseNameEnglish": "Todos os exercícios precisam de nome base em inglês", + "@baseNameEnglish": {}, + "nrOfSets": "Séries por exercício: {nrOfSets}", + "@nrOfSets": { + "description": "Label shown on the slider where the user selects the nr of sets", + "type": "text", + "placeholders": { + "nrOfSets": { + "type": "String" + } + } + }, + "optionsLabel": "Opções", + "@optionsLabel": { + "description": "Label for the popup with general app options" + }, + "takePicture": "Tirar foto", + "@takePicture": {}, + "chooseFromLibrary": "Escolher da galeria", + "@chooseFromLibrary": {}, + "gallery": "Galeria", + "@gallery": {}, + "addImage": "Adicionar imagem", + "@addImage": {}, + "appUpdateContent": "Esta versão da aplicação não é compatível com o servidor. Por favor, atualiza a aplicação.", + "@appUpdateContent": {}, + "productNotFoundDescription": "O produto com o código {barcode} não foi encontrado na base de dados wger", + "@productNotFoundDescription": { + "description": "Dialog info when product is not found with barcode", + "type": "text", + "placeholders": { + "barcode": { + "type": "String" + } + } + }, + "scanBarcode": "Ler código de barras", + "@scanBarcode": { + "description": "Label for scan barcode button" + }, + "close": "Fechar", + "@close": { + "description": "Translation for close" + }, + "add_exercise_image_license": "Imagens têm de ser compatíveis com a licença CC BY SA. Se tiveres dúvidas, usa apenas fotos tiradas por ti.", + "@add_exercise_image_license": {}, + "variations": "Variações", + "@variations": { + "description": "Variations of one exercise (e.g. benchpress and benchpress narrow)" + }, + "verifiedEmail": "E-mail verificado", + "@verifiedEmail": {}, + "verifiedEmailReason": "Tens de verificar o e-mail para poderes contribuir com exercícios", + "@verifiedEmailReason": {}, + "verifiedEmailInfo": "Foi enviado um e-mail de verificação para {email}", + "@verifiedEmailInfo": { + "placeholders": { + "email": { + "type": "String" + } + } + }, + "alternativeNames": "Nomes alternativos", + "@alternativeNames": {}, + "oneNamePerLine": "Um nome por linha", + "@oneNamePerLine": {}, + "whatVariationsExist": "Que variações deste exercício existem (se houver)?", + "@whatVariationsExist": {}, + "previous": "Anterior", + "@previous": {}, + "next": "Seguinte", + "@next": {}, + "images": "Imagens", + "@images": {}, + "language": "Idioma", + "@language": {}, + "addExercise": "Adicionar exercício", + "@addExercise": {}, + "fitInWeek": "Ajustar à semana", + "@fitInWeek": {}, + "toggleDetails": "Mostrar detalhes", + "@toggleDetails": { + "description": "Switch to toggle detail / overview" + }, + "edit": "Editar", + "@edit": {}, + "aboutWhySupportTitle": "Código aberto e gratuito ❤️", + "@aboutWhySupportTitle": {}, + "goToDetailPage": "Ir para a página de detalhes", + "@goToDetailPage": {}, + "productFound": "Produto encontrado", + "@productFound": { + "description": "Header label for dialog when product is found with barcode" + }, + "unVerifiedEmail": "E-mail não verificado", + "@unVerifiedEmail": {}, + "moreMeasurementEntries": "Adicionar nova medição", + "@moreMeasurementEntries": { + "description": "Message shown when the user wants to add new measurement" + }, + "selectIngredient": "Seleciona um ingrediente", + "@selectIngredient": { + "description": "Error message when the user hasn't selected an ingredient from the autocompleter" + }, + "newNutritionalPlan": "Novo plano nutricional", + "@newNutritionalPlan": {}, + "setUnitsAndRir": "Unidades de série e ReR", + "@setUnitsAndRir": { + "description": "Label shown on the slider where the user can toggle showing units and RiR", + "type": "text" + }, + "saturatedFat": "Gordura saturada", + "@saturatedFat": {}, + "selectImage": "Seleciona uma imagem", + "@selectImage": { + "description": "Label and error message when the user hasn't selected an image to save" + }, + "appUpdateTitle": "Atualização necessária", + "@appUpdateTitle": {}, + "noWeightEntries": "Ainda não tens registos de peso", + "@noWeightEntries": { + "description": "Message shown when the user has no logged weight entries" + }, + "confirmDelete": "Tens a certeza que queres eliminar '{toDelete}'?", + "@confirmDelete": { + "description": "Confirmation text before the user deletes an object", + "type": "text", + "placeholders": { + "toDelete": { + "type": "String" + } + } + }, + "recentlyUsedIngredients": "Ingredientes adicionados recentemente", + "@recentlyUsedIngredients": { + "description": "A message when a user adds a new ingredient to a meal." + }, + "loadingText": "A carregar...", + "@loadingText": { + "description": "Text to show when entries are being loaded in the background: Loading..." + }, + "delete": "Eliminar", + "@delete": {}, + "productNotFound": "Produto não encontrado", + "@productNotFound": { + "description": "Header label for dialog when product is not found with barcode" + }, + "enterValidNumber": "Introduz um número válido", + "@enterValidNumber": { + "description": "Error message when the user has submitted an invalid number (e.g. '3,.,.,.')" + }, + "dataCopied": "Dados copiados para nova entrada", + "@dataCopied": { + "description": "Snackbar message to show on copying data to a new log entry" + }, + "productFoundDescription": "O código de barras corresponde a este produto: {productName}. Queres continuar?", + "@productFoundDescription": { + "description": "Dialog info when product is found with barcode", + "type": "text", + "placeholders": { + "productName": { + "type": "String" + } + } + }, + "alsoKnownAs": "Também conhecido como: {aliases}", + "@alsoKnownAs": { + "placeholders": { + "aliases": { + "type": "String" + } + }, + "description": "List of alternative names for an exercise" + }, + "fitInWeekHelp": "Se ativado, os dias repetem-se semanalmente. Caso contrário, seguem-se em sequência sem respeitar o início da semana.", + "@fitInWeekHelp": {}, + "addSuperset": "Adicionar Superset", + "@addSuperset": {}, + "setHasProgression": "Série com progressão", + "@setHasProgression": {}, + "setHasProgressionWarning": "De momento não é possível editar todas as definições de uma série na app móvel ou configurar progressões automáticas. Usa a versão web.", + "@setHasProgressionWarning": {}, + "setHasNoExercises": "Esta série ainda não tem exercícios!", + "@setHasNoExercises": {}, + "contributeExercise": "Contribuir com um exercício", + "@contributeExercise": {}, + "translation": "Tradução", + "@translation": {}, + "translateExercise": "Traduz este exercício agora", + "@translateExercise": {}, + "baseData": "Básico em inglês", + "@baseData": { + "description": "The base data for an exercise such as category, trained muscles, etc." + }, + "settingsTitle": "Definições", + "@settingsTitle": {}, + "settingsCacheTitle": "Cache", + "@settingsCacheTitle": {}, + "settingsExerciseCacheDescription": "Cache de exercícios", + "@settingsExerciseCacheDescription": {}, + "settingsIngredientCacheDescription": "Cache de ingredientes", + "@settingsIngredientCacheDescription": {}, + "settingsCacheDeletedSnackbar": "Cache limpo com sucesso", + "@settingsCacheDeletedSnackbar": {}, + "aboutPageTitle": "Sobre nós & Apoio", + "@aboutPageTitle": {}, + "contributeExerciseWarning": "Só podes contribuir com exercícios se a tua conta tiver mais de {days} dias e e-mail verificado", + "@contributeExerciseWarning": { + "description": "Number of days before which a person can add exercise", + "placeholders": { + "days": { + "type": "String", + "example": "14" + } + } + }, + "simpleMode": "Modo simples", + "@simpleMode": {}, + "simpleModeHelp": "Esconder opções mais avançadas ao editar exercícios", + "@simpleModeHelp": {}, + "progressionRules": "Este exercício tem regras de progressão e não pode ser editado na app. Usa a versão web para o editar.", + "@progressionRules": {}, + "cacheWarning": "Por causa da cache, pode demorar um pouco até veres as alterações na app.", + "@cacheWarning": {}, + "textPromptTitle": "Pronto para começar?", + "@textPromptTitle": {}, + "textPromptSubheading": "Clica no botão de ação para começar", + "@textPromptSubheading": {}, + "abs": "Abdominais", + "@abs": { + "description": "Generated entry for translation for server strings" + }, + "arms": "Braços", + "@arms": { + "description": "Generated entry for translation for server strings" + }, + "back": "Costas", + "@back": { + "description": "Generated entry for translation for server strings" + }, + "barbell": "Barra olímpica", + "@barbell": { + "description": "Generated entry for translation for server strings" + }, + "bench": "Banco", + "@bench": { + "description": "Generated entry for translation for server strings" + }, + "biceps": "Bíceps", + "@biceps": { + "description": "Generated entry for translation for server strings" + }, + "body_weight": "Peso corporal", + "@body_weight": { + "description": "Generated entry for translation for server strings" + }, + "calves": "Gémeos", + "@calves": { + "description": "Generated entry for translation for server strings" + }, + "cardio": "Cardio", + "@cardio": { + "description": "Generated entry for translation for server strings" + }, + "chest": "Peito", + "@chest": { + "description": "Generated entry for translation for server strings" + }, + "dumbbell": "Halteres", + "@dumbbell": { + "description": "Generated entry for translation for server strings" + }, + "glutes": "Glúteos", + "@glutes": { + "description": "Generated entry for translation for server strings" + }, + "gym_mat": "Tapete de ginásio", + "@gym_mat": { + "description": "Generated entry for translation for server strings" + }, + "hamstrings": "Isquiotibiais", + "@hamstrings": { + "description": "Generated entry for translation for server strings" + }, + "incline_bench": "Banco inclinado", + "@incline_bench": { + "description": "Generated entry for translation for server strings" + }, + "kettlebell": "Kettlebell", + "@kettlebell": { + "description": "Generated entry for translation for server strings" + }, + "kilometers": "Quilómetros", + "@kilometers": { + "description": "Generated entry for translation for server strings" + }, + "kilometers_per_hour": "Km/h", + "@kilometers_per_hour": { + "description": "Generated entry for translation for server strings" + }, + "lats": "Dorsais", + "@lats": { + "description": "Generated entry for translation for server strings" + }, + "legs": "Pernas", + "@legs": { + "description": "Generated entry for translation for server strings" + }, + "lower_back": "Zona lombar", + "@lower_back": { + "description": "Generated entry for translation for server strings" + }, + "max_reps": "Repetições máximas", + "@max_reps": { + "description": "Generated entry for translation for server strings" + }, + "miles": "Milhas", + "@miles": { + "description": "Generated entry for translation for server strings" + }, + "miles_per_hour": "Mi/h", + "@miles_per_hour": { + "description": "Generated entry for translation for server strings" + }, + "minutes": "Minutos", + "@minutes": { + "description": "Generated entry for translation for server strings" + }, + "plates": "Discos", + "@plates": { + "description": "Generated entry for translation for server strings" + }, + "pull_up_bar": "Barra de elevações", + "@pull_up_bar": { + "description": "Generated entry for translation for server strings" + }, + "quads": "Quadríceps", + "@quads": { + "description": "Generated entry for translation for server strings" + }, + "repetitions": "Repetições", + "@repetitions": { + "description": "Generated entry for translation for server strings" + }, + "resistance_band": "Banda de resistência", + "@resistance_band": { + "description": "Generated entry for translation for server strings" + }, + "sz_bar": "Barra SZ", + "@sz_bar": { + "description": "Generated entry for translation for server strings" + }, + "seconds": "Segundos", + "@seconds": { + "description": "Generated entry for translation for server strings" + }, + "shoulders": "Ombros", + "@shoulders": { + "description": "Generated entry for translation for server strings" + }, + "swiss_ball": "Bola suíça", + "@swiss_ball": { + "description": "Generated entry for translation for server strings" + }, + "triceps": "Tríceps", + "@triceps": { + "description": "Generated entry for translation for server strings" + }, + "until_failure": "Até falhar", + "@until_failure": { + "description": "Generated entry for translation for server strings" + }, + "kg": "kg", + "@kg": { + "description": "Generated entry for translation for server strings" + }, + "lb": "lb", + "@lb": { + "description": "Generated entry for translation for server strings" + }, + "none__bodyweight_exercise_": "nenhum (exercício com peso corporal)", + "@none__bodyweight_exercise_": { + "description": "Generated entry for translation for server strings" + }, + "log": "Registar", + "@log": { + "description": "Log a specific meal (imperative form)" + }, + "done": "Concluído", + "@done": {}, + "overallChangeWeight": "Alteração total", + "@overallChangeWeight": { + "description": "Overall change in weight, added for localization" + }, + "goalTypeMeals": "Das refeições", + "@goalTypeMeals": { + "description": "added for localization of Class GoalType's filed meals" + }, + "goalTypeBasic": "Básico", + "@goalTypeBasic": { + "description": "added for localization of Class GoalType's filed basic" + }, + "goalTypeAdvanced": "Avançado", + "@goalTypeAdvanced": { + "description": "added for localization of Class GoalType's filed advanced" + }, + "indicatorRaw": "cru", + "@indicatorRaw": { + "description": "added for localization of Class Indicator's field text" + }, + "indicatorAvg": "média", + "@indicatorAvg": { + "description": "added for localization of Class Indicator's field text" + }, + "themeMode": "Modo de tema", + "@themeMode": {}, + "darkMode": "Modo escuro sempre", + "@darkMode": {}, + "lightMode": "Modo claro sempre", + "@lightMode": {}, + "systemMode": "Usar definições do sistema", + "@systemMode": {} +} diff --git a/lib/l10n/app_uk.arb b/lib/l10n/app_uk.arb index 5426836d..3db56005 100644 --- a/lib/l10n/app_uk.arb +++ b/lib/l10n/app_uk.arb @@ -385,7 +385,7 @@ }, "saturatedFat": "Насичені жири", "@saturatedFat": {}, - "fiber": "Волокна", + "fiber": "Волокон", "@fiber": {}, "sodium": "Натрій", "@sodium": {}, diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 27b5141d..fd2cda5c 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -91,7 +91,7 @@ "@notes": { "description": "Personal notes, e.g. for a workout session" }, - "comment": "备注", + "comment": "评论", "@comment": { "description": "Comment, additional information" }, @@ -519,7 +519,7 @@ "@logged": { "description": "Header for the column of 'logged' nutritional values, i.e. what was eaten" }, - "userProfile": "账户", + "userProfile": "个人资料", "@userProfile": {}, "exerciseName": "锻炼名", "@exerciseName": { @@ -706,7 +706,7 @@ "@biceps": { "description": "Generated entry for translation for server strings" }, - "aboutPageTitle": "关于 Wger", + "aboutPageTitle": "关于我们&支持", "@aboutPageTitle": {}, "selectEntry": "请选择一项", "@selectEntry": {}, @@ -734,9 +734,9 @@ "@sz_bar": { "description": "Generated entry for translation for server strings" }, - "aboutDonateTitle": "捐赠", + "aboutDonateTitle": "进行捐赠", "@aboutDonateTitle": {}, - "aboutDonateText": "向我们打赏来支持此项目,给服务器买单,及激励我们", + "aboutDonateText": "尽管该项目是免费的,且将始终保持免费,但服务器的运营并非如此!开发工作也需要志愿者投入大量的时间和精力。您的捐赠将直接用于支付这些成本,助力维持服务的稳定可靠。", "@aboutDonateText": {}, "none__bodyweight_exercise_": "无(自重动作)", "@none__bodyweight_exercise_": { @@ -1014,5 +1014,53 @@ "apiTokenValidChars": "API 密钥只能包含字母 a-f、数字 0-9,长度为 40 个字符", "@apiTokenValidChars": { "description": "Error message when the user tries to input a API key with forbidden characters" - } + }, + "selectAvailablePlates": "选择可用的杠片", + "@selectAvailablePlates": {}, + "yourCurrentNutritionPlanHasNoMealsDefinedYet": "你当前的营养计划中没有设定任何餐食", + "@yourCurrentNutritionPlanHasNoMealsDefinedYet": { + "description": "Message shown when a nutrition plan doesn't have any meals" + }, + "toAddMealsToThePlanGoToNutritionalPlanDetails": "若要为营养计划添加餐食,请前往营养计划详情页面", + "@toAddMealsToThePlanGoToNutritionalPlanDetails": { + "description": "Message shown to guide users to the nutritional plan details page to add meals" + }, + "errorInfoDescription": "很抱歉,出现了一些问题。您可以通过在 GitHub 上报告此问题来帮助我们修复它。", + "@errorInfoDescription": {}, + "errorInfoDescription2": "您可以继续使用这款应用,但部分功能可能无法正常运行。", + "@errorInfoDescription2": {}, + "errorViewDetails": "错误技术详情", + "@errorViewDetails": {}, + "errorCouldNotConnectToServer": "无法连接到服务器", + "@errorCouldNotConnectToServer": {}, + "errorCouldNotConnectToServerDetails": "应用程序无法连接到服务器。请检查您的网络连接或服务器网址,然后重试。如果问题持续存在,请联系服务器管理员。", + "@errorCouldNotConnectToServerDetails": {}, + "copyToClipboard": "复制", + "@copyToClipboard": {}, + "aboutWhySupportTitle": "开源 & 免费使用", + "@aboutWhySupportTitle": {}, + "aboutContributeTitle": "贡献", + "@aboutContributeTitle": {}, + "aboutContributeText": "我们鼓励各种形式的贡献。无论您是开发者、翻译人员,还是单纯热爱健身的人士,每一份支持都值得我们由衷感谢!", + "@aboutContributeText": {}, + "aboutBugsListTitle": "报告问题或提出功能建议", + "@aboutBugsListTitle": {}, + "aboutTranslationListTitle": "翻译此软件", + "@aboutTranslationListTitle": {}, + "aboutSourceListTitle": "查看源代码", + "@aboutSourceListTitle": {}, + "aboutJoinCommunityTitle": "加入社区", + "@aboutJoinCommunityTitle": {}, + "aboutDiscordTitle": "Discord", + "@aboutDiscordTitle": {}, + "others": "其他", + "@others": {}, + "fitInWeek": "一周健身计划", + "@fitInWeek": {}, + "resistance_band": "弹力带", + "@resistance_band": { + "description": "Generated entry for translation for server strings" + }, + "resultingRoutine": "最终生成的训练计划", + "@resultingRoutine": {} } diff --git a/lib/l10n/app_zh_Hant.arb b/lib/l10n/app_zh_Hant.arb index 03a2b3fe..4f3c985b 100644 --- a/lib/l10n/app_zh_Hant.arb +++ b/lib/l10n/app_zh_Hant.arb @@ -155,7 +155,7 @@ "@repetitionUnit": {}, "dayDescriptionHelp": "描述這一天做了什麼(例如:拉力日)或訓練了哪些部位(例如:胸部和肩膀)", "@dayDescriptionHelp": {}, - "comment": "註釋", + "comment": "註解", "@comment": { "description": "Comment, additional information" }, @@ -938,5 +938,11 @@ "ingredientLogged": "食材已紀錄到日記", "@ingredientLogged": {}, "selectMealToLog": "選擇要紀錄到日記的餐點", - "@selectMealToLog": {} + "@selectMealToLog": {}, + "errorCouldNotConnectToServerDetails": "無法連接到伺服器", + "@errorCouldNotConnectToServerDetails": {}, + "copyToClipboard": "複製到剪貼簿", + "@copyToClipboard": {}, + "aboutWhySupportTitle": "開源且免費使用❤️", + "@aboutWhySupportTitle": {} }