Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
636 changes: 636 additions & 0 deletions backend/lang/id.json

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions backend/lang/id/auth.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

return [

/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/

'failed' => 'Kredensial ini tidak cocok dengan catatan kami.',
'password' => 'Password salah.',
'throttle' => 'Terlalu banyak upaya login. Silakan coba lagi dalam :seconds detik.',

];
19 changes: 19 additions & 0 deletions backend/lang/id/pagination.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

return [

/*
|--------------------------------------------------------------------------
| Pagination Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the paginator library to build
| the simple pagination links. You are free to change them to anything
| you want to customize your views to better match your application.
|
*/

'previous' => '&laquo; Sebelumnya',
'next' => 'Selanjutnya &raquo;',

];
22 changes: 22 additions & 0 deletions backend/lang/id/passwords.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

return [

/*
|--------------------------------------------------------------------------
| Password Reset Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are the default lines which match reasons
| that are given by the password broker for a password update attempt
| has failed, such as for an invalid token or invalid new password.
|
*/

'reset' => 'Password Anda telah direset.',
'sent' => 'Kami telah mengirimkan email berisi link reset password Anda.',
'throttled' => 'Mohon tunggu sebelum mencoba lagi.',
'token' => 'Token reset password ini tidak valid.',
'user' => "Kami tidak bisa menemukan user dengan alamat email ini.",

];
184 changes: 184 additions & 0 deletions backend/lang/id/validation.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
<?php

return [

/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/

'accepted' => 'Kolom :attribute harus disetujui.',
'accepted_if' => 'Kolom :attribute harus disetujui ketika :other bernilai :value.',
'active_url' => 'Kolom :attribute harus berupa URL yang valid.',
'after' => 'Kolom :attribute harus berupa tanggal setelah :date.',
'after_or_equal' => 'Kolom :attribute harus berupa tanggal setelah atau sama dengan :date.',
'alpha' => 'Kolom :attribute hanya boleh berisi huruf.',
'alpha_dash' => 'Kolom :attribute hanya boleh berisi huruf, angka, tanda hubung, dan garis bawah.',
'alpha_num' => 'Kolom :attribute hanya boleh berisi huruf dan angka.',
'array' => 'Kolom :attribute harus berupa array.',
'ascii' => 'Kolom :attribute hanya boleh berisi karakter alfanumerik single-byte dan simbol.',
'before' => 'Kolom :attribute harus berupa tanggal sebelum :date.',
'before_or_equal' => 'Kolom :attribute harus berupa tanggal sebelum atau sama dengan :date.',
'between' => [
'array' => 'Kolom :attribute harus memiliki antara :min sampai :max item.',
'file' => 'Kolom :attribute harus berukuran antara :min sampai :max kilobyte.',
'numeric' => 'Kolom :attribute harus bernilai antara :min sampai :max.',
'string' => 'Kolom :attribute harus memiliki panjang antara :min sampai :max karakter.',
],
'boolean' => 'Kolom :attribute harus bernilai true atau false.',
'confirmed' => 'Konfirmasi :attribute tidak cocok.',
'current_password' => 'Kata sandi salah.',
'date' => 'Kolom :attribute harus berupa tanggal yang valid.',
'date_equals' => 'Kolom :attribute harus berupa tanggal yang sama dengan :date.',
'date_format' => 'Kolom :attribute harus sesuai dengan format :format.',
'decimal' => 'Kolom :attribute harus memiliki :decimal angka desimal.',
'declined' => 'Kolom :attribute harus ditolak.',
'declined_if' => 'Kolom :attribute harus ditolak ketika :other bernilai :value.',
'different' => 'Kolom :attribute dan :other harus berbeda.',
'digits' => 'Kolom :attribute harus terdiri dari :digits digit.',
'digits_between' => 'Kolom :attribute harus terdiri dari :min sampai :max digit.',
'dimensions' => 'Kolom :attribute memiliki dimensi gambar yang tidak valid.',
'distinct' => 'Kolom :attribute memiliki nilai duplikat.',
'doesnt_end_with' => 'Kolom :attribute tidak boleh diakhiri dengan salah satu dari: :values.',
'doesnt_start_with' => 'Kolom :attribute tidak boleh diawali dengan salah satu dari: :values.',
'email' => 'Kolom :attribute harus berupa alamat email yang valid.',
'ends_with' => 'Kolom :attribute harus diakhiri dengan salah satu dari: :values.',
'enum' => ':attribute yang dipilih tidak valid.',
'exists' => ':attribute yang dipilih tidak valid.',
'file' => 'Kolom :attribute harus berupa file.',
'filled' => 'Kolom :attribute harus memiliki nilai.',
'gt' => [
'array' => 'Kolom :attribute harus memiliki lebih dari :value item.',
'file' => 'Kolom :attribute harus lebih besar dari :value kilobyte.',
'numeric' => 'Kolom :attribute harus lebih besar dari :value.',
'string' => 'Kolom :attribute harus lebih dari :value karakter.',
],
'gte' => [
'array' => 'Kolom :attribute harus memiliki :value item atau lebih.',
'file' => 'Kolom :attribute harus lebih besar dari atau sama dengan :value kilobyte.',
'numeric' => 'Kolom :attribute harus lebih besar dari atau sama dengan :value.',
'string' => 'Kolom :attribute harus lebih besar dari atau sama dengan :value karakter.',
],
'image' => 'Kolom :attribute harus berupa gambar.',
'in' => ':attribute yang dipilih tidak valid.',
'in_array' => 'Kolom :attribute tidak ada di dalam :other.',
'integer' => 'Kolom :attribute harus berupa bilangan bulat.',
'ip' => 'Kolom :attribute harus berupa alamat IP yang valid.',
'ipv4' => 'Kolom :attribute harus berupa alamat IPv4 yang valid.',
'ipv6' => 'Kolom :attribute harus berupa alamat IPv6 yang valid.',
'json' => 'Kolom :attribute harus berupa string JSON yang valid.',
'lowercase' => 'Kolom :attribute harus berupa huruf kecil.',
'lt' => [
'array' => 'Kolom :attribute harus memiliki kurang dari :value item.',
'file' => 'Kolom :attribute harus kurang dari :value kilobyte.',
'numeric' => 'Kolom :attribute harus kurang dari :value.',
'string' => 'Kolom :attribute harus kurang dari :value karakter.',
],
'lte' => [
'array' => 'Kolom :attribute tidak boleh memiliki lebih dari :value item.',
'file' => 'Kolom :attribute harus kurang dari atau sama dengan :value kilobyte.',
'numeric' => 'Kolom :attribute harus kurang dari atau sama dengan :value.',
'string' => 'Kolom :attribute harus kurang dari atau sama dengan :value karakter.',
],
'mac_address' => 'Kolom :attribute harus berupa alamat MAC yang valid.',
'max' => [
'array' => 'Kolom :attribute tidak boleh memiliki lebih dari :max item.',
'file' => 'Kolom :attribute tidak boleh lebih besar dari :max kilobyte.',
'numeric' => 'Kolom :attribute tidak boleh lebih besar dari :max.',
'string' => 'Kolom :attribute tidak boleh lebih dari :max karakter.',
],
'max_digits' => 'Kolom :attribute tidak boleh memiliki lebih dari :max digit.',
'mimes' => 'Kolom :attribute harus berupa file bertipe: :values.',
'mimetypes' => 'Kolom :attribute harus berupa file bertipe: :values.',
'min' => [
'array' => 'Kolom :attribute harus memiliki minimal :min item.',
'file' => 'Kolom :attribute harus berukuran minimal :min kilobyte.',
'numeric' => 'Kolom :attribute harus bernilai minimal :min.',
'string' => 'Kolom :attribute harus memiliki minimal :min karakter.',
],
'min_digits' => 'Kolom :attribute harus memiliki minimal :min digit.',
'missing' => 'Kolom :attribute harus kosong (missing).',
'missing_if' => 'Kolom :attribute harus kosong ketika :other bernilai :value.',
'missing_unless' => 'Kolom :attribute harus kosong kecuali :other bernilai :value.',
'missing_with' => 'Kolom :attribute harus kosong ketika :values tersedia.',
'missing_with_all' => 'Kolom :attribute harus kosong ketika :values tersedia.',
'multiple_of' => 'Kolom :attribute harus berupa kelipatan dari :value.',
'not_in' => ':attribute yang dipilih tidak valid.',
'not_regex' => 'Format kolom :attribute tidak valid.',
'numeric' => 'Kolom :attribute harus berupa angka.',
'password' => [
'letters' => 'Kolom :attribute harus mengandung setidaknya satu huruf.',
'mixed' => 'Kolom :attribute harus mengandung setidaknya satu huruf besar dan satu huruf kecil.',
'numbers' => 'Kolom :attribute harus mengandung setidaknya satu angka.',
'symbols' => 'Kolom :attribute harus mengandung setidaknya satu simbol.',
'uncompromised' => ':attribute yang diberikan telah muncul dalam kebocoran data. Silakan pilih :attribute yang berbeda.',
],
'present' => 'Kolom :attribute wajib ada.',
'prohibited' => 'Kolom :attribute dilarang ada.',
'prohibited_if' => 'Kolom :attribute dilarang ada ketika :other bernilai :value.',
'prohibited_unless' => 'Kolom :attribute dilarang ada kecuali :other ada di dalam :values.',
'prohibits' => 'Kolom :attribute melarang :other untuk ada.',
'regex' => 'Format kolom :attribute tidak valid.',
'required' => 'Kolom :attribute wajib diisi.',
'required_array_keys' => 'Kolom :attribute harus berisi entri untuk: :values.',
'required_if' => 'Kolom :attribute wajib diisi ketika :other bernilai :value.',
'required_if_accepted' => 'Kolom :attribute wajib diisi ketika :other disetujui.',
'required_unless' => 'Kolom :attribute wajib diisi kecuali :other ada di dalam :values.',
'required_with' => 'Kolom :attribute wajib diisi ketika :values tersedia.',
'required_with_all' => 'Kolom :attribute wajib diisi ketika :values tersedia.',
'required_without' => 'Kolom :attribute wajib diisi ketika :values tidak tersedia.',
'required_without_all' => 'Kolom :attribute wajib diisi ketika tidak ada satupun dari :values yang tersedia.',
'same' => 'Kolom :attribute dan :other harus sama.',
'size' => [
'array' => 'Kolom :attribute harus berisi :size item.',
'file' => 'Kolom :attribute harus berukuran :size kilobyte.',
'numeric' => 'Kolom :attribute harus bernilai :size.',
'string' => 'Kolom :attribute harus berukuran :size karakter.',
],
'starts_with' => 'Kolom :attribute harus diawali dengan salah satu dari: :values.',
'string' => 'Kolom :attribute harus berupa string.',
'timezone' => 'Kolom :attribute harus berupa zona waktu yang valid.',
'unique' => ':attribute sudah digunakan.',
'uploaded' => ':attribute gagal diunggah.',
'uppercase' => 'Kolom :attribute harus berupa huruf kapital.',
'url' => 'Kolom :attribute harus berupa URL yang valid.',
'ulid' => 'Kolom :attribute harus berupa ULID yang valid.',
'uuid' => 'Kolom :attribute harus berupa UUID yang valid.',

/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/

'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],

/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap our attribute placeholder
| with something more reader friendly such as "E-Mail Address" instead
| of "email". This simply helps us make our message more expressive.
|
*/

'attributes' => [],

];
8 changes: 4 additions & 4 deletions frontend/lingui.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type {LinguiConfig} from "@lingui/conf";
import type { LinguiConfig } from "@lingui/conf";

const config: LinguiConfig = {
locales: [
Expand All @@ -7,7 +7,7 @@ const config: LinguiConfig = {
"es", // Spanish
"fr", // French
"nl", // Dutch
"hu", // Hungarian
"hu", // Hungarian
"pt-br", // Portuguese (Brazil)
"ru", // Russian
"de", // German
Expand All @@ -19,7 +19,7 @@ const config: LinguiConfig = {
// "pl", // Polish
// "ja", // Japanese
// "ko", // Korean
// "id", // Indonesian
"id", // Indonesian
"zh-hk", // Cantonese Chinese (Hong Kong)
// "cs", // Czech
// "ga", // Irish
Expand All @@ -33,7 +33,7 @@ const config: LinguiConfig = {
sourceLocale: "en",
format: "po",
fallbackLocales: {
default: "en",
default: "en",
}
};

Expand Down
9 changes: 6 additions & 3 deletions frontend/src/locales.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {i18n} from "@lingui/core";
import { i18n } from "@lingui/core";

export type SupportedLocales =
"en"
Expand All @@ -13,9 +13,10 @@ export type SupportedLocales =
| "vi"
| "zh-hk"
| "tr"
| "hu";
| "hu"
| "id";

export const availableLocales = ["en", "de", "fr", "it", "nl", "pt", "es", "zh-cn", "zh-hk", "pt-br", "vi", "tr", "hu"];
export const availableLocales = ["en", "de", "fr", "it", "nl", "pt", "es", "zh-cn", "zh-hk", "pt-br", "vi", "tr", "hu", "id"];

export const localeToFlagEmojiMap: Record<SupportedLocales, string> = {
en: '🇬🇧',
Expand All @@ -31,6 +32,7 @@ export const localeToFlagEmojiMap: Record<SupportedLocales, string> = {
vi: '🇻🇳',
tr: '🇹🇷',
hu: '🇭🇺',
id: '🇮🇩',
};

export const localeToNameMap: Record<SupportedLocales, string> = {
Expand All @@ -47,6 +49,7 @@ export const localeToNameMap: Record<SupportedLocales, string> = {
vi: `Vietnamese`,
tr: `Turkish`,
hu: `Hungarian`,
id: `Indonesian`,
};

export const getLocaleName = (locale: SupportedLocales) => {
Expand Down