visuddhinanda hace 2 semanas
padre
commit
1dcf387657

+ 11 - 1
api-v13/resources/lang/en/site.php

@@ -13,10 +13,20 @@ return [
     'logo' => '/logo.png',
     'title' => 'wikipali',
     'subhead' => 'wikipali',
-    'keywords' => ['pali','buddhistm'],
+    'keywords' => ['pali', 'buddhistm'],
     'description' => 'wikipali',
     'copyright' => 'iapt 2022',
     'author.name' => 'iapt',
     'author.email' => 'visuddhindand@gmail.com',
+    'nav' => [
+        'home' => 'Home',
+        'tipitaka' => 'Tipitaka',
+        'wiki' => 'Wiki',
+        'anthology' => 'Anthology',
+        'download' => 'Download',
 
+        'menu' => 'Menu',
+        'open_menu' => 'Open menu',
+        'close_menu' => 'Close menu',
+    ],
 ];

+ 20 - 0
api-v13/resources/lang/my/auth.php

@@ -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' => 'These credentials do not match our records.',
+    'password' => 'The provided password is incorrect.',
+    'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
+
+];

+ 5 - 0
api-v13/resources/lang/my/buttons.php

@@ -0,0 +1,5 @@
+<?php
+return [
+    'more' => 'More',
+    'online-read' =>  'Online Read',
+];

+ 7 - 0
api-v13/resources/lang/my/labels.php

@@ -0,0 +1,7 @@
+<?php
+return [
+    'home' => 'Home',
+    'translation' => 'Translation',
+    'original' => 'Original',
+    'nissaya' => 'Nissaya'
+];

+ 10 - 0
api-v13/resources/lang/my/language.php

@@ -0,0 +1,10 @@
+<?php
+// api-v12/resources/lang/en/language.php
+return [
+    'en' => 'English',
+    'pali' => 'pali',
+    'zh' => '中文',
+    'zh-Hans' => '简体中文',
+    'zh-Hant' => '繁体中文',
+    'my' => 'မြန်မာဘာသာ',
+];

+ 19 - 0
api-v13/resources/lang/my/pagination.php

@@ -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; Previous',
+    'next' => 'Next &raquo;',
+
+];

+ 22 - 0
api-v13/resources/lang/my/passwords.php

@@ -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' => 'Your password has been reset!',
+    'sent' => 'We have emailed your password reset link!',
+    'throttled' => 'Please wait before retrying.',
+    'token' => 'This password reset token is invalid.',
+    'user' => "We can't find a user with that email address.",
+
+];

+ 32 - 0
api-v13/resources/lang/my/site.php

@@ -0,0 +1,32 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | site Language Lines
+    |--------------------------------------------------------------------------
+    |
+    |
+    */
+
+    'logo' => '/logo.png',
+    'title' => 'wikipali',
+    'subhead' => 'wikipali',
+    'keywords' => ['pali', 'buddhistm'],
+    'description' => 'wikipali',
+    'copyright' => 'iapt 2022',
+    'author.name' => 'iapt',
+    'author.email' => 'visuddhindand@gmail.com',
+    'nav' => [
+        'home' => 'ပင်မစာမျက်နှာ',
+        'tipitaka' => 'တိပိဋက',
+        'wiki' => 'ဗဟုသုတ',
+        'anthology' => 'စာစု',
+        'download' => 'ဒေါင်းလုဒ်',
+
+        'menu' => 'မီနူး',
+        'open_menu' => 'မီနူးဖွင့်ရန်',
+        'close_menu' => 'မီနူးပိတ်ရန်',
+    ],
+];

+ 162 - 0
api-v13/resources/lang/my/validation.php

@@ -0,0 +1,162 @@
+<?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' => 'The :attribute must be accepted.',
+    'accepted_if' => 'The :attribute must be accepted when :other is :value.',
+    'active_url' => 'The :attribute is not a valid URL.',
+    'after' => 'The :attribute must be a date after :date.',
+    'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
+    'alpha' => 'The :attribute must only contain letters.',
+    'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.',
+    'alpha_num' => 'The :attribute must only contain letters and numbers.',
+    'array' => 'The :attribute must be an array.',
+    'before' => 'The :attribute must be a date before :date.',
+    'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
+    'between' => [
+        'numeric' => 'The :attribute must be between :min and :max.',
+        'file' => 'The :attribute must be between :min and :max kilobytes.',
+        'string' => 'The :attribute must be between :min and :max characters.',
+        'array' => 'The :attribute must have between :min and :max items.',
+    ],
+    'boolean' => 'The :attribute field must be true or false.',
+    'confirmed' => 'The :attribute confirmation does not match.',
+    'current_password' => 'The password is incorrect.',
+    'date' => 'The :attribute is not a valid date.',
+    'date_equals' => 'The :attribute must be a date equal to :date.',
+    'date_format' => 'The :attribute does not match the format :format.',
+    'declined' => 'The :attribute must be declined.',
+    'declined_if' => 'The :attribute must be declined when :other is :value.',
+    'different' => 'The :attribute and :other must be different.',
+    'digits' => 'The :attribute must be :digits digits.',
+    'digits_between' => 'The :attribute must be between :min and :max digits.',
+    'dimensions' => 'The :attribute has invalid image dimensions.',
+    'distinct' => 'The :attribute field has a duplicate value.',
+    'email' => 'The :attribute must be a valid email address.',
+    'ends_with' => 'The :attribute must end with one of the following: :values.',
+    'enum' => 'The selected :attribute is invalid.',
+    'exists' => 'The selected :attribute is exists.',
+    'file' => 'The :attribute must be a file.',
+    'filled' => 'The :attribute field must have a value.',
+    'gt' => [
+        'numeric' => 'The :attribute must be greater than :value.',
+        'file' => 'The :attribute must be greater than :value kilobytes.',
+        'string' => 'The :attribute must be greater than :value characters.',
+        'array' => 'The :attribute must have more than :value items.',
+    ],
+    'gte' => [
+        'numeric' => 'The :attribute must be greater than or equal to :value.',
+        'file' => 'The :attribute must be greater than or equal to :value kilobytes.',
+        'string' => 'The :attribute must be greater than or equal to :value characters.',
+        'array' => 'The :attribute must have :value items or more.',
+    ],
+    'image' => 'The :attribute must be an image.',
+    'in' => 'The selected :attribute is invalid.',
+    'in_array' => 'The :attribute field does not exist in :other.',
+    'integer' => 'The :attribute must be an integer.',
+    'ip' => 'The :attribute must be a valid IP address.',
+    'ipv4' => 'The :attribute must be a valid IPv4 address.',
+    'ipv6' => 'The :attribute must be a valid IPv6 address.',
+    'mac_address' => 'The :attribute must be a valid MAC address.',
+    'json' => 'The :attribute must be a valid JSON string.',
+    'lt' => [
+        'numeric' => 'The :attribute must be less than :value.',
+        'file' => 'The :attribute must be less than :value kilobytes.',
+        'string' => 'The :attribute must be less than :value characters.',
+        'array' => 'The :attribute must have less than :value items.',
+    ],
+    'lte' => [
+        'numeric' => 'The :attribute must be less than or equal to :value.',
+        'file' => 'The :attribute must be less than or equal to :value kilobytes.',
+        'string' => 'The :attribute must be less than or equal to :value characters.',
+        'array' => 'The :attribute must not have more than :value items.',
+    ],
+    'max' => [
+        'numeric' => 'The :attribute must not be greater than :max.',
+        'file' => 'The :attribute must not be greater than :max kilobytes.',
+        'string' => 'The :attribute must not be greater than :max characters.',
+        'array' => 'The :attribute must not have more than :max items.',
+    ],
+    'mimes' => 'The :attribute must be a file of type: :values.',
+    'mimetypes' => 'The :attribute must be a file of type: :values.',
+    'min' => [
+        'numeric' => 'The :attribute must be at least :min.',
+        'file' => 'The :attribute must be at least :min kilobytes.',
+        'string' => 'The :attribute must be at least :min characters.',
+        'array' => 'The :attribute must have at least :min items.',
+    ],
+    'multiple_of' => 'The :attribute must be a multiple of :value.',
+    'not_in' => 'The selected :attribute is invalid.',
+    'not_regex' => 'The :attribute format is invalid.',
+    'numeric' => 'The :attribute must be a number.',
+    'password' => 'The password is incorrect.',
+    'present' => 'The :attribute field must be present.',
+    'prohibited' => 'The :attribute field is prohibited.',
+    'prohibited_if' => 'The :attribute field is prohibited when :other is :value.',
+    'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.',
+    'prohibits' => 'The :attribute field prohibits :other from being present.',
+    'regex' => 'The :attribute format is invalid.',
+    'required' => 'The :attribute field is required.',
+    'required_if' => 'The :attribute field is required when :other is :value.',
+    'required_unless' => 'The :attribute field is required unless :other is in :values.',
+    'required_with' => 'The :attribute field is required when :values is present.',
+    'required_with_all' => 'The :attribute field is required when :values are present.',
+    'required_without' => 'The :attribute field is required when :values is not present.',
+    'required_without_all' => 'The :attribute field is required when none of :values are present.',
+    'same' => 'The :attribute and :other must match.',
+    'size' => [
+        'numeric' => 'The :attribute must be :size.',
+        'file' => 'The :attribute must be :size kilobytes.',
+        'string' => 'The :attribute must be :size characters.',
+        'array' => 'The :attribute must contain :size items.',
+    ],
+    'starts_with' => 'The :attribute must start with one of the following: :values.',
+    'string' => 'The :attribute must be a string.',
+    'timezone' => 'The :attribute must be a valid timezone.',
+    'unique' => 'The :attribute has already been taken.',
+    'uploaded' => 'The :attribute failed to upload.',
+    'url' => 'The :attribute must be a valid URL.',
+    'uuid' => 'The :attribute must be a valid UUID.',
+
+    /*
+    |--------------------------------------------------------------------------
+    | 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' => [],
+
+];

+ 20 - 0
api-v13/resources/lang/si/auth.php

@@ -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' => 'These credentials do not match our records.',
+    'password' => 'The provided password is incorrect.',
+    'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
+
+];

+ 5 - 0
api-v13/resources/lang/si/buttons.php

@@ -0,0 +1,5 @@
+<?php
+return [
+    'more' => 'More',
+    'online-read' =>  'Online Read',
+];

+ 7 - 0
api-v13/resources/lang/si/labels.php

@@ -0,0 +1,7 @@
+<?php
+return [
+    'home' => 'Home',
+    'translation' => 'Translation',
+    'original' => 'Original',
+    'nissaya' => 'Nissaya'
+];

+ 10 - 0
api-v13/resources/lang/si/language.php

@@ -0,0 +1,10 @@
+<?php
+// api-v12/resources/lang/en/language.php
+return [
+    'en' => 'English',
+    'pali' => 'pali',
+    'zh' => '中文',
+    'zh-Hans' => '简体中文',
+    'zh-Hant' => '繁体中文',
+    'my' => 'မြန်မာဘာသာ',
+];

+ 19 - 0
api-v13/resources/lang/si/pagination.php

@@ -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; Previous',
+    'next' => 'Next &raquo;',
+
+];

+ 22 - 0
api-v13/resources/lang/si/passwords.php

@@ -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' => 'Your password has been reset!',
+    'sent' => 'We have emailed your password reset link!',
+    'throttled' => 'Please wait before retrying.',
+    'token' => 'This password reset token is invalid.',
+    'user' => "We can't find a user with that email address.",
+
+];

+ 32 - 0
api-v13/resources/lang/si/site.php

@@ -0,0 +1,32 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | site Language Lines
+    |--------------------------------------------------------------------------
+    |
+    |
+    */
+
+    'logo' => '/logo.png',
+    'title' => 'wikipali',
+    'subhead' => 'wikipali',
+    'keywords' => ['pali', 'buddhistm'],
+    'description' => 'wikipali',
+    'copyright' => 'iapt 2022',
+    'author.name' => 'iapt',
+    'author.email' => 'visuddhindand@gmail.com',
+    'nav' => [
+        'home' => 'මුල් පිටුව',
+        'tipitaka' => 'තිපිටකය',
+        'wiki' => 'විද්‍යාකෝෂය',
+        'anthology' => 'සංග්‍රහය',
+        'download' => 'බාගත කිරීම',
+
+        'menu' => 'මෙනුව',
+        'open_menu' => 'මෙනුව විවෘත කරන්න',
+        'close_menu' => 'මෙනුව වසන්න',
+    ],
+];

+ 162 - 0
api-v13/resources/lang/si/validation.php

@@ -0,0 +1,162 @@
+<?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' => 'The :attribute must be accepted.',
+    'accepted_if' => 'The :attribute must be accepted when :other is :value.',
+    'active_url' => 'The :attribute is not a valid URL.',
+    'after' => 'The :attribute must be a date after :date.',
+    'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
+    'alpha' => 'The :attribute must only contain letters.',
+    'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.',
+    'alpha_num' => 'The :attribute must only contain letters and numbers.',
+    'array' => 'The :attribute must be an array.',
+    'before' => 'The :attribute must be a date before :date.',
+    'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
+    'between' => [
+        'numeric' => 'The :attribute must be between :min and :max.',
+        'file' => 'The :attribute must be between :min and :max kilobytes.',
+        'string' => 'The :attribute must be between :min and :max characters.',
+        'array' => 'The :attribute must have between :min and :max items.',
+    ],
+    'boolean' => 'The :attribute field must be true or false.',
+    'confirmed' => 'The :attribute confirmation does not match.',
+    'current_password' => 'The password is incorrect.',
+    'date' => 'The :attribute is not a valid date.',
+    'date_equals' => 'The :attribute must be a date equal to :date.',
+    'date_format' => 'The :attribute does not match the format :format.',
+    'declined' => 'The :attribute must be declined.',
+    'declined_if' => 'The :attribute must be declined when :other is :value.',
+    'different' => 'The :attribute and :other must be different.',
+    'digits' => 'The :attribute must be :digits digits.',
+    'digits_between' => 'The :attribute must be between :min and :max digits.',
+    'dimensions' => 'The :attribute has invalid image dimensions.',
+    'distinct' => 'The :attribute field has a duplicate value.',
+    'email' => 'The :attribute must be a valid email address.',
+    'ends_with' => 'The :attribute must end with one of the following: :values.',
+    'enum' => 'The selected :attribute is invalid.',
+    'exists' => 'The selected :attribute is exists.',
+    'file' => 'The :attribute must be a file.',
+    'filled' => 'The :attribute field must have a value.',
+    'gt' => [
+        'numeric' => 'The :attribute must be greater than :value.',
+        'file' => 'The :attribute must be greater than :value kilobytes.',
+        'string' => 'The :attribute must be greater than :value characters.',
+        'array' => 'The :attribute must have more than :value items.',
+    ],
+    'gte' => [
+        'numeric' => 'The :attribute must be greater than or equal to :value.',
+        'file' => 'The :attribute must be greater than or equal to :value kilobytes.',
+        'string' => 'The :attribute must be greater than or equal to :value characters.',
+        'array' => 'The :attribute must have :value items or more.',
+    ],
+    'image' => 'The :attribute must be an image.',
+    'in' => 'The selected :attribute is invalid.',
+    'in_array' => 'The :attribute field does not exist in :other.',
+    'integer' => 'The :attribute must be an integer.',
+    'ip' => 'The :attribute must be a valid IP address.',
+    'ipv4' => 'The :attribute must be a valid IPv4 address.',
+    'ipv6' => 'The :attribute must be a valid IPv6 address.',
+    'mac_address' => 'The :attribute must be a valid MAC address.',
+    'json' => 'The :attribute must be a valid JSON string.',
+    'lt' => [
+        'numeric' => 'The :attribute must be less than :value.',
+        'file' => 'The :attribute must be less than :value kilobytes.',
+        'string' => 'The :attribute must be less than :value characters.',
+        'array' => 'The :attribute must have less than :value items.',
+    ],
+    'lte' => [
+        'numeric' => 'The :attribute must be less than or equal to :value.',
+        'file' => 'The :attribute must be less than or equal to :value kilobytes.',
+        'string' => 'The :attribute must be less than or equal to :value characters.',
+        'array' => 'The :attribute must not have more than :value items.',
+    ],
+    'max' => [
+        'numeric' => 'The :attribute must not be greater than :max.',
+        'file' => 'The :attribute must not be greater than :max kilobytes.',
+        'string' => 'The :attribute must not be greater than :max characters.',
+        'array' => 'The :attribute must not have more than :max items.',
+    ],
+    'mimes' => 'The :attribute must be a file of type: :values.',
+    'mimetypes' => 'The :attribute must be a file of type: :values.',
+    'min' => [
+        'numeric' => 'The :attribute must be at least :min.',
+        'file' => 'The :attribute must be at least :min kilobytes.',
+        'string' => 'The :attribute must be at least :min characters.',
+        'array' => 'The :attribute must have at least :min items.',
+    ],
+    'multiple_of' => 'The :attribute must be a multiple of :value.',
+    'not_in' => 'The selected :attribute is invalid.',
+    'not_regex' => 'The :attribute format is invalid.',
+    'numeric' => 'The :attribute must be a number.',
+    'password' => 'The password is incorrect.',
+    'present' => 'The :attribute field must be present.',
+    'prohibited' => 'The :attribute field is prohibited.',
+    'prohibited_if' => 'The :attribute field is prohibited when :other is :value.',
+    'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.',
+    'prohibits' => 'The :attribute field prohibits :other from being present.',
+    'regex' => 'The :attribute format is invalid.',
+    'required' => 'The :attribute field is required.',
+    'required_if' => 'The :attribute field is required when :other is :value.',
+    'required_unless' => 'The :attribute field is required unless :other is in :values.',
+    'required_with' => 'The :attribute field is required when :values is present.',
+    'required_with_all' => 'The :attribute field is required when :values are present.',
+    'required_without' => 'The :attribute field is required when :values is not present.',
+    'required_without_all' => 'The :attribute field is required when none of :values are present.',
+    'same' => 'The :attribute and :other must match.',
+    'size' => [
+        'numeric' => 'The :attribute must be :size.',
+        'file' => 'The :attribute must be :size kilobytes.',
+        'string' => 'The :attribute must be :size characters.',
+        'array' => 'The :attribute must contain :size items.',
+    ],
+    'starts_with' => 'The :attribute must start with one of the following: :values.',
+    'string' => 'The :attribute must be a string.',
+    'timezone' => 'The :attribute must be a valid timezone.',
+    'unique' => 'The :attribute has already been taken.',
+    'uploaded' => 'The :attribute failed to upload.',
+    'url' => 'The :attribute must be a valid URL.',
+    'uuid' => 'The :attribute must be a valid UUID.',
+
+    /*
+    |--------------------------------------------------------------------------
+    | 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' => [],
+
+];

+ 20 - 0
api-v13/resources/lang/th/auth.php

@@ -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' => 'These credentials do not match our records.',
+    'password' => 'The provided password is incorrect.',
+    'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
+
+];

+ 5 - 0
api-v13/resources/lang/th/buttons.php

@@ -0,0 +1,5 @@
+<?php
+return [
+    'more' => 'More',
+    'online-read' =>  'Online Read',
+];

+ 7 - 0
api-v13/resources/lang/th/labels.php

@@ -0,0 +1,7 @@
+<?php
+return [
+    'home' => 'Home',
+    'translation' => 'Translation',
+    'original' => 'Original',
+    'nissaya' => 'Nissaya'
+];

+ 10 - 0
api-v13/resources/lang/th/language.php

@@ -0,0 +1,10 @@
+<?php
+// api-v12/resources/lang/en/language.php
+return [
+    'en' => 'English',
+    'pali' => 'pali',
+    'zh' => '中文',
+    'zh-Hans' => '简体中文',
+    'zh-Hant' => '繁体中文',
+    'my' => 'မြန်မာဘာသာ',
+];

+ 19 - 0
api-v13/resources/lang/th/pagination.php

@@ -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; Previous',
+    'next' => 'Next &raquo;',
+
+];

+ 22 - 0
api-v13/resources/lang/th/passwords.php

@@ -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' => 'Your password has been reset!',
+    'sent' => 'We have emailed your password reset link!',
+    'throttled' => 'Please wait before retrying.',
+    'token' => 'This password reset token is invalid.',
+    'user' => "We can't find a user with that email address.",
+
+];

+ 32 - 0
api-v13/resources/lang/th/site.php

@@ -0,0 +1,32 @@
+<?php
+
+return [
+
+    /*
+    |--------------------------------------------------------------------------
+    | site Language Lines
+    |--------------------------------------------------------------------------
+    |
+    |
+    */
+
+    'logo' => '/logo.png',
+    'title' => 'wikipali',
+    'subhead' => 'wikipali',
+    'keywords' => ['pali', 'buddhistm'],
+    'description' => 'wikipali',
+    'copyright' => 'iapt 2022',
+    'author.name' => 'iapt',
+    'author.email' => 'visuddhindand@gmail.com',
+    'nav' => [
+        'home' => 'หน้าหลัก',
+        'tipitaka' => 'พระไตรปิฎก',
+        'wiki' => 'สารานุกรม',
+        'anthology' => 'ชุดบทความ',
+        'download' => 'ดาวน์โหลด',
+
+        'menu' => 'เมนู',
+        'open_menu' => 'เปิดเมนู',
+        'close_menu' => 'ปิดเมนู',
+    ],
+];

+ 162 - 0
api-v13/resources/lang/th/validation.php

@@ -0,0 +1,162 @@
+<?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' => 'The :attribute must be accepted.',
+    'accepted_if' => 'The :attribute must be accepted when :other is :value.',
+    'active_url' => 'The :attribute is not a valid URL.',
+    'after' => 'The :attribute must be a date after :date.',
+    'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
+    'alpha' => 'The :attribute must only contain letters.',
+    'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.',
+    'alpha_num' => 'The :attribute must only contain letters and numbers.',
+    'array' => 'The :attribute must be an array.',
+    'before' => 'The :attribute must be a date before :date.',
+    'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
+    'between' => [
+        'numeric' => 'The :attribute must be between :min and :max.',
+        'file' => 'The :attribute must be between :min and :max kilobytes.',
+        'string' => 'The :attribute must be between :min and :max characters.',
+        'array' => 'The :attribute must have between :min and :max items.',
+    ],
+    'boolean' => 'The :attribute field must be true or false.',
+    'confirmed' => 'The :attribute confirmation does not match.',
+    'current_password' => 'The password is incorrect.',
+    'date' => 'The :attribute is not a valid date.',
+    'date_equals' => 'The :attribute must be a date equal to :date.',
+    'date_format' => 'The :attribute does not match the format :format.',
+    'declined' => 'The :attribute must be declined.',
+    'declined_if' => 'The :attribute must be declined when :other is :value.',
+    'different' => 'The :attribute and :other must be different.',
+    'digits' => 'The :attribute must be :digits digits.',
+    'digits_between' => 'The :attribute must be between :min and :max digits.',
+    'dimensions' => 'The :attribute has invalid image dimensions.',
+    'distinct' => 'The :attribute field has a duplicate value.',
+    'email' => 'The :attribute must be a valid email address.',
+    'ends_with' => 'The :attribute must end with one of the following: :values.',
+    'enum' => 'The selected :attribute is invalid.',
+    'exists' => 'The selected :attribute is exists.',
+    'file' => 'The :attribute must be a file.',
+    'filled' => 'The :attribute field must have a value.',
+    'gt' => [
+        'numeric' => 'The :attribute must be greater than :value.',
+        'file' => 'The :attribute must be greater than :value kilobytes.',
+        'string' => 'The :attribute must be greater than :value characters.',
+        'array' => 'The :attribute must have more than :value items.',
+    ],
+    'gte' => [
+        'numeric' => 'The :attribute must be greater than or equal to :value.',
+        'file' => 'The :attribute must be greater than or equal to :value kilobytes.',
+        'string' => 'The :attribute must be greater than or equal to :value characters.',
+        'array' => 'The :attribute must have :value items or more.',
+    ],
+    'image' => 'The :attribute must be an image.',
+    'in' => 'The selected :attribute is invalid.',
+    'in_array' => 'The :attribute field does not exist in :other.',
+    'integer' => 'The :attribute must be an integer.',
+    'ip' => 'The :attribute must be a valid IP address.',
+    'ipv4' => 'The :attribute must be a valid IPv4 address.',
+    'ipv6' => 'The :attribute must be a valid IPv6 address.',
+    'mac_address' => 'The :attribute must be a valid MAC address.',
+    'json' => 'The :attribute must be a valid JSON string.',
+    'lt' => [
+        'numeric' => 'The :attribute must be less than :value.',
+        'file' => 'The :attribute must be less than :value kilobytes.',
+        'string' => 'The :attribute must be less than :value characters.',
+        'array' => 'The :attribute must have less than :value items.',
+    ],
+    'lte' => [
+        'numeric' => 'The :attribute must be less than or equal to :value.',
+        'file' => 'The :attribute must be less than or equal to :value kilobytes.',
+        'string' => 'The :attribute must be less than or equal to :value characters.',
+        'array' => 'The :attribute must not have more than :value items.',
+    ],
+    'max' => [
+        'numeric' => 'The :attribute must not be greater than :max.',
+        'file' => 'The :attribute must not be greater than :max kilobytes.',
+        'string' => 'The :attribute must not be greater than :max characters.',
+        'array' => 'The :attribute must not have more than :max items.',
+    ],
+    'mimes' => 'The :attribute must be a file of type: :values.',
+    'mimetypes' => 'The :attribute must be a file of type: :values.',
+    'min' => [
+        'numeric' => 'The :attribute must be at least :min.',
+        'file' => 'The :attribute must be at least :min kilobytes.',
+        'string' => 'The :attribute must be at least :min characters.',
+        'array' => 'The :attribute must have at least :min items.',
+    ],
+    'multiple_of' => 'The :attribute must be a multiple of :value.',
+    'not_in' => 'The selected :attribute is invalid.',
+    'not_regex' => 'The :attribute format is invalid.',
+    'numeric' => 'The :attribute must be a number.',
+    'password' => 'The password is incorrect.',
+    'present' => 'The :attribute field must be present.',
+    'prohibited' => 'The :attribute field is prohibited.',
+    'prohibited_if' => 'The :attribute field is prohibited when :other is :value.',
+    'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.',
+    'prohibits' => 'The :attribute field prohibits :other from being present.',
+    'regex' => 'The :attribute format is invalid.',
+    'required' => 'The :attribute field is required.',
+    'required_if' => 'The :attribute field is required when :other is :value.',
+    'required_unless' => 'The :attribute field is required unless :other is in :values.',
+    'required_with' => 'The :attribute field is required when :values is present.',
+    'required_with_all' => 'The :attribute field is required when :values are present.',
+    'required_without' => 'The :attribute field is required when :values is not present.',
+    'required_without_all' => 'The :attribute field is required when none of :values are present.',
+    'same' => 'The :attribute and :other must match.',
+    'size' => [
+        'numeric' => 'The :attribute must be :size.',
+        'file' => 'The :attribute must be :size kilobytes.',
+        'string' => 'The :attribute must be :size characters.',
+        'array' => 'The :attribute must contain :size items.',
+    ],
+    'starts_with' => 'The :attribute must start with one of the following: :values.',
+    'string' => 'The :attribute must be a string.',
+    'timezone' => 'The :attribute must be a valid timezone.',
+    'unique' => 'The :attribute has already been taken.',
+    'uploaded' => 'The :attribute failed to upload.',
+    'url' => 'The :attribute must be a valid URL.',
+    'uuid' => 'The :attribute must be a valid UUID.',
+
+    /*
+    |--------------------------------------------------------------------------
+    | 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' => [],
+
+];

+ 0 - 4
api-v13/resources/lang/zh-Hans/label.php

@@ -1,4 +0,0 @@
-<?php
-return [
-    'translation' => '译文',
-];

+ 11 - 1
api-v13/resources/lang/zh-Hans/site.php

@@ -13,10 +13,20 @@ return [
     'logo' => '/logo.png',
     'title' => '维基巴利',
     'subhead' => 'wikipali',
-    'keywords' => ['巴利语','佛教'],
+    'keywords' => ['巴利语', '佛教'],
     'description' => 'wikipali',
     'copyright' => 'iapt 2022',
     'author.name' => 'iapt',
     'author.email' => 'visuddhindand@gmail.com',
+    'nav' => [
+        'home' => '首页',
+        'tipitaka' => '三藏',
+        'wiki' => '百科',
+        'anthology' => '文集',
+        'download' => '下载',
 
+        'menu' => '导航',
+        'open_menu' => '打开导航',
+        'close_menu' => '关闭导航',
+    ],
 ];

+ 62 - 23
api-v13/resources/views/components/library/navbar.blade.php

@@ -1,8 +1,3 @@
-{{-- resources/views/components/library/navbar.blade.php
-     替换原 components/library/header.blade.php。
-     文件名从 header 改为 navbar,与规范目录对齐。
-     原文件内容不变,仅做变量名规范化(--wp-* token 替代硬编码色值已在 CSS 层处理)。
---}}
 <div class="anthology-breadcrumb-bar">
     <div class="container-xl">
         <div class="bc-inner">
@@ -12,22 +7,48 @@
             </ol>
 
             <ul class="bc-nav">
-                <li><a href="{{ route('library.home') }}"
-                       class="{{ request()->routeIs('library.home') ? 'active' : '' }}">首页</a></li>
-                <li><a href="{{ route('library.tipitaka.index') }}"
-                       class="{{ request()->routeIs('library.tipitaka.*') ? 'active' : '' }}">三藏</a></li>
-                <li><a href="{{ route('library.wiki.home') }}"
-                       class="{{ request()->routeIs('library.wiki.*') ? 'active' : '' }}">百科</a></li>
-                <li><a href="{{ route('library.anthology.index') }}"
-                       class="{{ request()->routeIs('library.anthology.*') ? 'active' : '' }}">文集</a></li>
-                <li><a href="{{ route('library.download') }}"
-                       class="{{ request()->routeIs('library.download') ? 'active' : '' }}">下载</a></li>
+                <li>
+                    <a href="{{ route('library.home') }}"
+                        class="{{ request()->routeIs('library.home') ? 'active' : '' }}">
+                        {{ __('site.nav.home') }}
+                    </a>
+                </li>
+
+                <li>
+                    <a href="{{ route('library.tipitaka.index') }}"
+                        class="{{ request()->routeIs('library.tipitaka.*') ? 'active' : '' }}">
+                        {{ __('site.nav.tipitaka') }}
+                    </a>
+                </li>
+
+                <li>
+                    <a href="{{ route('library.wiki.home') }}"
+                        class="{{ request()->routeIs('library.wiki.*') ? 'active' : '' }}">
+                        {{ __('site.nav.wiki') }}
+                    </a>
+                </li>
+
+                <li>
+                    <a href="{{ route('library.anthology.index') }}"
+                        class="{{ request()->routeIs('library.anthology.*') ? 'active' : '' }}">
+                        {{ __('site.nav.anthology') }}
+                    </a>
+                </li>
+
+                <li>
+                    <a href="{{ route('library.download') }}"
+                        class="{{ request()->routeIs('library.download') ? 'active' : '' }}">
+                        {{ __('site.nav.download') }}
+                    </a>
+                </li>
+
                 <li>
                     <x-language-switcher />
                 </li>
             </ul>
 
-            <button class="bc-hamburger" id="bcHamburger" aria-label="打开导航">
+            <button class="bc-hamburger" id="bcHamburger"
+                aria-label="{{ __('site.nav.open_menu') }}">
                 <i class="ti ti-menu-2"></i>
             </button>
 
@@ -39,22 +60,40 @@
 
 <div class="bc-mobile-drawer" id="bcDrawer">
     <div class="bc-mobile-drawer-header">
-        <span>导航</span>
-        <button class="bc-mobile-drawer-close" id="bcDrawerClose" aria-label="关闭">
+        <span>{{ __('site.nav.menu') }}</span>
+
+        <button class="bc-mobile-drawer-close" id="bcDrawerClose"
+            aria-label="{{ __('site.nav.close_menu') }}">
             <i class="ti ti-x"></i>
         </button>
     </div>
+
     <ul class="bc-mobile-nav">
         <li><a href="{{ route('library.home') }}"
-               class="{{ request()->routeIs('library.home') ? 'active' : '' }}">首页</a></li>
+                class="{{ request()->routeIs('library.home') ? 'active' : '' }}">
+                {{ __('site.nav.home') }}
+            </a></li>
+
         <li><a href="{{ route('library.tipitaka.index') }}"
-               class="{{ request()->routeIs('library.tipitaka.*') ? 'active' : '' }}">三藏</a></li>
+                class="{{ request()->routeIs('library.tipitaka.*') ? 'active' : '' }}">
+                {{ __('site.nav.tipitaka') }}
+            </a></li>
+
         <li><a href="{{ route('library.wiki.home') }}"
-               class="{{ request()->routeIs('library.wiki.*') ? 'active' : '' }}">百科</a></li>
+                class="{{ request()->routeIs('library.wiki.*') ? 'active' : '' }}">
+                {{ __('site.nav.wiki') }}
+            </a></li>
+
         <li><a href="{{ route('library.anthology.index') }}"
-               class="{{ request()->routeIs('library.anthology.*') ? 'active' : '' }}">文集</a></li>
+                class="{{ request()->routeIs('library.anthology.*') ? 'active' : '' }}">
+                {{ __('site.nav.anthology') }}
+            </a></li>
+
         <li><a href="{{ route('library.download') }}"
-               class="{{ request()->routeIs('library.download') ? 'active' : '' }}">下载</a></li>
+                class="{{ request()->routeIs('library.download') ? 'active' : '' }}">
+                {{ __('site.nav.download') }}
+            </a></li>
+
         <li style="padding: 1rem 0.25rem;">
             <x-language-switcher />
         </li>

+ 10 - 12
api-v13/resources/views/library/index.blade.php

@@ -7,13 +7,13 @@
 @section('title', 'WikiPāli · 巴利书库')
 
 @push('styles')
-    @vite('resources/css/modules/_library-index.css')
+@vite('resources/css/modules/_library-index.css')
 @endpush
 
 {{-- Hero --}}
 @section('hero')
 <section class="hero-section"
-         style="background-image: url('{{ URL::asset('assets/images/hero-2.jpg') }}')">
+    style="background-image: url('{{ URL::asset('assets/images/hero-2.jpg') }}')">
     <div class="hero-overlay"></div>
     <div class="hero-content">
         <h1 class="hero-title">WikiPāli 巴利书库</h1>
@@ -22,8 +22,7 @@
             <x-ui.search-input
                 :action="route('library.search')"
                 placeholder="搜索经典、词条、文集…"
-                size="lg"
-            />
+                size="lg" />
         </div>
     </div>
 </section>
@@ -41,7 +40,7 @@
                     巴利三藏
                 </h2>
                 <a href="{{ route('library.tipitaka.index') }}"
-                   class="lib-section__more">
+                    class="lib-section__more">
                     进入三藏 <i class="ti ti-arrow-right"></i>
                 </a>
             </div>
@@ -52,10 +51,10 @@
                     <div class="wiki-card h-100">
                         <div class="lib-cat-card__head">
                             <span class="lib-cat-card__name">
-                                {{ $data['category']['name'] }}
+                                {{ $data['category']['local_name'] }}
                             </span>
                             <a href="{{ route('library.tipitaka.category', ['id' => $data['category']['id']]) }}"
-                               class="lib-cat-card__more">
+                                class="lib-cat-card__more">
                                 更多 <i class="ti ti-arrow-right"></i>
                             </a>
                         </div>
@@ -63,7 +62,7 @@
                             @foreach($data['children'] as $child)
                             <li>
                                 <a href="{{ route('library.tipitaka.category', ['id' => $child['id']]) }}">
-                                    {{ $child['name'] }}
+                                    {{ $child['local_name'] }}
                                 </a>
                             </li>
                             @endforeach
@@ -87,7 +86,7 @@
                     </span>
                 </h2>
                 <a href="{{ route('library.tipitaka.index') }}"
-                   class="lib-section__more">
+                    class="lib-section__more">
                     查看全部 <i class="ti ti-arrow-right"></i>
                 </a>
             </div>
@@ -95,7 +94,7 @@
             <div class="wiki-card lib-recent">
                 @foreach($recentBooks as $book)
                 <a href="{{ route('library.tipitaka.show', $book['id']) }}"
-                   class="lib-recent__item">
+                    class="lib-recent__item">
 
                     {{-- 封面缩略图 --}}
                     <x-ui.book-cover
@@ -103,8 +102,7 @@
                         :gradient="$book['cover_gradient'] ?? 'linear-gradient(135deg,#2d2010,#1a1208)'"
                         :title="$book['title']"
                         size="sm"
-                        :style3d="false"
-                    />
+                        :style3d="false" />
 
                     {{-- 信息 --}}
                     <div class="lib-recent__info">