mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 18:54:58 +00:00 
			
		
		
		
	
		
			
	
	
		
			209 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			209 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | /** | ||
|  |  * validation.php | ||
|  |  * Copyright (c) 2019 james@firefly-iii.org | ||
|  |  * | ||
|  |  * This file is part of Firefly III (https://github.com/firefly-iii). | ||
|  |  * | ||
|  |  * This program is free software: you can redistribute it and/or modify | ||
|  |  * it under the terms of the GNU Affero General Public License as | ||
|  |  * published by the Free Software Foundation, either version 3 of the | ||
|  |  * License, or (at your option) any later version. | ||
|  |  * | ||
|  |  * This program is distributed in the hope that it will be useful, | ||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||
|  |  * GNU Affero General Public License for more details. | ||
|  |  * | ||
|  |  * You should have received a copy of the GNU Affero General Public License | ||
|  |  * along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||
|  |  */ | ||
|  | 
 | ||
|  | declare(strict_types=1); | ||
|  | 
 | ||
|  | return [ | ||
|  |     'iban'                           => 'Đây không phải là một IBAN hợp lệ.', | ||
|  |     'zero_or_more'                   => 'Giá trị không thể âm.', | ||
|  |     'date_or_time'                   => 'Giá trị phải là giá trị ngày hoặc thời gian hợp lệ (ISO 8601).', | ||
|  |     'source_equals_destination'      => 'Tài khoản nguồn bằng với tài khoản đích.', | ||
|  |     'unique_account_number_for_user' => 'Có vẻ như số tài khoản này đã được sử dụng.', | ||
|  |     'unique_iban_for_user'           => 'Có vẻ như IBAN này đã được sử dụng.', | ||
|  |     'deleted_user'                   => 'Do những hạn chế về bảo mật, bạn không thể đăng ký bằng địa chỉ email này.', | ||
|  |     'rule_trigger_value'             => 'Giá trị này không hợp lệ cho trình kích hoạt được chọn.', | ||
|  |     'rule_action_value'              => 'Giá trị này không hợp lệ cho hành động đã chọn.', | ||
|  |     'file_already_attached'          => 'Đã tải lên tập tin ":name" đã được gắn vào đối tượng này.', | ||
|  |     'file_attached'                  => 'Tải lên thành công tập tin ":name".', | ||
|  |     'must_exist'                     => 'Tải lên thành công tập tin....', | ||
|  |     'all_accounts_equal'             => 'ID trong trường: thuộc tính không tồn tại trong cơ sở dữ liệu....', | ||
|  |     'group_title_mandatory'          => 'Tiêu đề nhóm là bắt buộc khi có nhiều hơn một giao dịch.', | ||
|  |     'transaction_types_equal'        => 'Tất cả các phần tách phải cùng loại.', | ||
|  |     'invalid_transaction_type'       => 'Loại giao dịch không hợp lệ.', | ||
|  |     'invalid_selection'              => 'Lựa chọn của bạn không hợp lệ.', | ||
|  |     'belongs_user'                   => 'Giá trị này không hợp lệ cho trường này.', | ||
|  |     'at_least_one_transaction'       => 'Cần ít nhất một giao dịch.', | ||
|  |     'at_least_one_repetition'        => 'Cần ít nhất một lần lặp lại.', | ||
|  |     'require_repeat_until'           => 'Yêu cầu một số lần lặp lại hoặc ngày kết thúc (repeat_until). Không phải cả hai.', | ||
|  |     'require_currency_info'          => 'Nội dung của trường này không hợp lệ nếu không có thông tin về tiền tệ.', | ||
|  |     'not_transfer_account'           => 'Tài khoản này không phải là tài khoản có thể được sử dụng để chuyển khoản.', | ||
|  |     'require_currency_amount'        => 'Nội dung của trường này không hợp lệ nếu không có thông tin về số lượng nước ngoài.', | ||
|  |     'equal_description'              => 'Mô tả giao dịch không nên bằng mô tả toàn cầu.', | ||
|  |     'file_invalid_mime'              => 'File ":name" là loại ":mime" không được chấp nhận khi tải lên mới.', | ||
|  |     'file_too_large'                 => 'File ":name" quá lớn.', | ||
|  |     'belongs_to_user'                => 'Giá trị của: thuộc tính không xác định.', | ||
|  |     'accepted'                       => 'Thuộc tính: phải được chấp nhận.', | ||
|  |     'bic'                            => 'Đây không phải là BIC hợp lệ.', | ||
|  |     'at_least_one_trigger'           => 'Quy tắc phải có ít nhất một kích hoạt.', | ||
|  |     'at_least_one_action'            => 'Quy tắc phải có ít nhất một hành động.', | ||
|  |     'base64'                         => 'Đây không phải là dữ liệu được mã hóa base64 hợp lệ.', | ||
|  |     'model_id_invalid'               => 'ID đã cho có vẻ không hợp lệ cho mô hình này.', | ||
|  |     'more'                           => ':thuộc tính phải lớn hơn ":more".', | ||
|  |     'less'                           => ':thuộc tính phải nhỏ hơn 10,000,000', | ||
|  |     'active_url'                     => 'Thuộc tính: không phải là một URL hợp lệ.', | ||
|  |     'after'                          => 'Thuộc tính: phải là một ngày sau: ngày.', | ||
|  |     'alpha'                          => 'Thuộc tính: chỉ có thể chứa các chữ cái.', | ||
|  |     'alpha_dash'                     => 'Thuộc tính: chỉ có thể chứa chữ cái, số và dấu gạch ngang.', | ||
|  |     'alpha_num'                      => 'Thuộc tính: chỉ có thể chứa các chữ cái và số.', | ||
|  |     'array'                          => 'Thuộc tính: phải là một mảng.', | ||
|  |     'unique_for_user'                => 'Đã có một mục với thuộc tính này:.', | ||
|  |     'before'                         => 'Thuộc tính: phải là một ngày trước: ngày.', | ||
|  |     'unique_object_for_user'         => 'Tên này đã được sử dụng.', | ||
|  |     'unique_account_for_user'        => 'Tên tài khoản này đã được sử dụng.', | ||
|  |     'between.numeric'                => 'Thuộc tính: phải nằm trong khoảng: min và: max.', | ||
|  |     'between.file'                   => 'Thuộc tính: phải nằm trong khoảng: min và max: kilobyte.', | ||
|  |     'between.string'                 => 'Thuộc tính: phải nằm giữa :min và :max characters.', | ||
|  |     'between.array'                  => 'Thuộc tính: phải nằm giữa :min và :max items.', | ||
|  |     'boolean'                        => 'Trường thuộc tính: phải đúng hoặc sai.', | ||
|  |     'confirmed'                      => 'Xác nhận thuộc tính: không khớp.', | ||
|  |     'date'                           => 'Thuộc tính: không phải là ngày hợp lệ.', | ||
|  |     'date_format'                    => 'Thuộc tính: không khớp với định dạng: format.', | ||
|  |     'different'                      => 'Thuộc tính: và: khác phải khác.', | ||
|  |     'digits'                         => 'Thuộc tính: phải là: chữ số chữ số.', | ||
|  |     'digits_between'                 => 'Thuộc tính: phải nằm giữa: min và: chữ số tối đa.', | ||
|  |     'email'                          => 'Thuộc tính: phải là một địa chỉ email hợp lệ.', | ||
|  |     'filled'                         => 'Trường thuộc tính: là bắt buộc.', | ||
|  |     'exists'                         => 'Thuộc tính được chọn: không hợp lệ.', | ||
|  |     'image'                          => 'Thuộc tính: phải là một hình ảnh.', | ||
|  |     'in'                             => 'Thuộc tính được chọn: không hợp lệ.', | ||
|  |     'integer'                        => 'Thuộc tính: phải là một số nguyên.', | ||
|  |     'ip'                             => 'Thuộc tính: phải là một địa chỉ IP hợp lệ.', | ||
|  |     'json'                           => 'Thuộc tính: phải là một chuỗi JSON hợp lệ.', | ||
|  |     'max.numeric'                    => 'Thuộc tính: có thể không lớn hơn: max.', | ||
|  |     'max.file'                       => 'Thuộc tính: có thể không lớn hơn :max kilobytes.', | ||
|  |     'max.string'                     => 'Thuộc tính: có thể không lớn hơn :max ký tự.', | ||
|  |     'max.array'                      => 'Thuộc tính: có thể không có nhiều hơn: các mục tối đa.', | ||
|  |     'mimes'                          => 'Thuộc tính: phải là một tệp loại :: giá trị.', | ||
|  |     'min.numeric'                    => 'Thuộc tính: ít nhất phải là: min.', | ||
|  |     'lte.numeric'                    => 'Thuộc tính: phải nhỏ hơn hoặc bằng: value.', | ||
|  |     'min.file'                       => 'Thuộc tính: ít nhất phải là :min kilobytes.', | ||
|  |     'min.string'                     => 'Thuộc tính: ít nhất phải là: min ký tự.', | ||
|  |     'min.array'                      => 'Thuộc tính: phải có ít nhất: các mục tối thiểu.', | ||
|  |     'not_in'                         => 'Thuộc tính được chọn: không hợp lệ.', | ||
|  |     'numeric'                        => 'Thuộc tính: phải là một số.', | ||
|  |     'numeric_native'                 => 'Số tiền gốc phải là một số.', | ||
|  |     'numeric_destination'            => 'Số lượng đích phải là một số.', | ||
|  |     'numeric_source'                 => 'Số lượng nguồn phải là một số.', | ||
|  |     'regex'                          => 'Định dạng thuộc tính: không hợp lệ.', | ||
|  |     'required'                       => 'Trường thuộc tính: là bắt buộc.', | ||
|  |     'required_if'                    => 'Trường thuộc tính: được yêu cầu khi: khác là: value.', | ||
|  |     'required_unless'                => 'Trường thuộc tính: được yêu cầu trừ khi: khác nằm trong: giá trị.', | ||
|  |     'required_with'                  => 'Trường thuộc tính: được yêu cầu khi có: giá trị.', | ||
|  |     'required_with_all'              => 'Trường thuộc tính: được yêu cầu khi có: giá trị.', | ||
|  |     'required_without'               => 'Trường thuộc tính: được yêu cầu khi: giá trị không có.', | ||
|  |     'required_without_all'           => 'Trường thuộc tính: được yêu cầu khi không có giá trị:.', | ||
|  |     'same'                           => 'Thuộc tính: và khác phải khớp.', | ||
|  |     'size.numeric'                   => 'Thuộc tính: phải là: kích thước.', | ||
|  |     'amount_min_over_max'            => 'Số tiền tối thiểu không thể lớn hơn số tiền tối đa.', | ||
|  |     'size.file'                      => 'Thuộc tính: phải là: kích thước kilobyte.', | ||
|  |     'size.string'                    => 'Thuộc tính: phải là: ký tự kích thước.', | ||
|  |     'size.array'                     => 'Thuộc tính: phải chứa: các mục kích thước.', | ||
|  |     'unique'                         => 'Thuộc tính: đã được sử dụng.', | ||
|  |     'string'                         => 'Thuộc tính: phải là một chuỗi.', | ||
|  |     'url'                            => 'Định dạng thuộc tính: không hợp lệ.', | ||
|  |     'timezone'                       => 'Thuộc tính: phải là vùng hợp lệ.', | ||
|  |     '2fa_code'                       => 'Thuộc tính: phải là trường aThe: thuộc tính hợp lệ là không hợp lệ.', | ||
|  |     'dimensions'                     => 'Thuộc tính: có kích thước hình ảnh không hợp lệ.', | ||
|  |     'distinct'                       => 'Trường thuộc tính: có giá trị trùng lặp.', | ||
|  |     'file'                           => 'Thuộc tính: phải là một tệp.', | ||
|  |     'in_array'                       => 'Trường thuộc tính: không tồn tại trong: other.', | ||
|  |     'present'                        => 'Trường thuộc tính: phải có mặt.', | ||
|  |     'amount_zero'                    => 'Tổng số tiền không thể bằng không.', | ||
|  |     'current_target_amount'          => 'Số tiền hiện tại phải nhỏ hơn số tiền mục tiêu.', | ||
|  |     'unique_piggy_bank_for_user'     => 'Tên của con heo đất phải là duy nhất.', | ||
|  | 
 | ||
|  |     'secure_password'                => 'Đây không phải là một mật khẩu an toàn. Vui lòng thử lại. Để biết thêm thông tin, hãy truy cập https://bit.ly/FF3-password-security', | ||
|  |     'valid_recurrence_rep_type'      => 'Loại lặp lại không hợp lệ cho các giao dịch định kỳ.', | ||
|  |     'valid_recurrence_rep_moment'    => 'Khoảnh khắc lặp lại không hợp lệ cho loại lặp lại này.', | ||
|  |     'invalid_account_info'           => 'Thông tin tài khoản không hợp lệ.', | ||
|  |     'attributes'                     => [ | ||
|  |         'email'                   => 'địa chỉ email', | ||
|  |         'description'             => 'mô tả', | ||
|  |         'amount'                  => 'số tiền', | ||
|  |         'name'                    => 'tên', | ||
|  |         'piggy_bank_id'           => 'ID heo đất', | ||
|  |         'targetamount'            => 'lượng mục tiêu', | ||
|  |         'opening_balance_date'    => 'ngày mở số dư', | ||
|  |         'opening_balance'         => 'số dư đầu kỳ', | ||
|  |         'match'                   => 'match', | ||
|  |         'amount_min'              => 'số tiền tối thiểu', | ||
|  |         'amount_max'              => 'số tiền tối đa', | ||
|  |         'title'                   => 'tiêu đề', | ||
|  |         'tag'                     => 'thẻ', | ||
|  |         'transaction_description' => 'mô tả giao dịch', | ||
|  |         'rule-action-value.1'     => 'quy tắc hành động giá trị #1', | ||
|  |         'rule-action-value.2'     => 'quy tắc hành động giá trị #2', | ||
|  |         'rule-action-value.3'     => 'quy tắc hành động giá trị #3', | ||
|  |         'rule-action-value.4'     => 'quy tắc hành động giá trị #4', | ||
|  |         'rule-action-value.5'     => 'quy tắc hành động giá trị #5', | ||
|  |         'rule-action.1'           => 'quy tắc hành động #1', | ||
|  |         'rule-action.2'           => 'quy tắc hành động #2', | ||
|  |         'rule-action.3'           => 'quy tắc hành động #3', | ||
|  |         'rule-action.4'           => 'quy tắc hành động #4', | ||
|  |         'rule-action.5'           => 'quy tắc hành động #5', | ||
|  |         'rule-trigger-value.1'    => 'quy tắc kích hoạt giá trị #1', | ||
|  |         'rule-trigger-value.2'    => 'quy tắc kích hoạt giá trị #2', | ||
|  |         'rule-trigger-value.3'    => 'quy tắc kích hoạt giá trị #3', | ||
|  |         'rule-trigger-value.4'    => 'quy tắc kích hoạt giá trị #4', | ||
|  |         'rule-trigger-value.5'    => 'quy tắc kích hoạt giá trị #5', | ||
|  |         'rule-trigger.1'          => 'quy tắc kích hoạt #1', | ||
|  |         'rule-trigger.2'          => 'quy tắc kích hoạt #2', | ||
|  |         'rule-trigger.3'          => 'quy tắc kích hoạt #3', | ||
|  |         'rule-trigger.4'          => 'quy tắc kích hoạt #4', | ||
|  |         'rule-trigger.5'          => 'quy tắc kích hoạt #5', | ||
|  |     ], | ||
|  | 
 | ||
|  |     // validation of accounts:
 | ||
|  |     'withdrawal_source_need_data'    => 'Cần lấy ID tài khoản nguồn hợp lệ và / hoặc tên tài khoản nguồn hợp lệ để tiếp tục.', | ||
|  |     'withdrawal_source_bad_data'     => 'Không thể tìm thấy tài khoản nguồn hợp lệ khi tìm kiếm ID ":id" hoặc tên ":name".', | ||
|  |     'withdrawal_dest_need_data'      => 'Cần lấy ID tài khoản đích hợp lệ và / hoặc tên tài khoản đích hợp lệ để tiếp tục.', | ||
|  |     'withdrawal_dest_bad_data'       => 'Không thể tìm thấy tài khoản đích hợp lệ khi tìm kiếm ID ":id" hoặc tên ":name".', | ||
|  | 
 | ||
|  |     'deposit_source_need_data' => 'Cần lấy ID tài khoản nguồn hợp lệ và / hoặc tên tài khoản nguồn hợp lệ để tiếp tục.', | ||
|  |     'deposit_source_bad_data'  => 'Cần lấy ID tài khoản nguồn hợp lệ và / hoặc tên tài khoản nguồn hợp lệ để continuaCould không tìm thấy tài khoản nguồn hợp lệ khi tìm kiếm IDe ":id" hoặc tên ":name".', | ||
|  |     'deposit_dest_need_data'   => 'Cần lấy ID tài khoản đích hợp lệ và / hoặc tên tài khoản đích hợp lệ để tiếp tục.', | ||
|  |     'deposit_dest_bad_data'    => 'Không thể tìm thấy tài khoản đích hợp lệ khi tìm kiếm ID ":id" hoặc tên ":name".', | ||
|  |     'deposit_dest_wrong_type'  => 'Tài khoản đích đã gửi không đúng loại.', | ||
|  | 
 | ||
|  |     'transfer_source_need_data' => 'Cần lấy ID tài khoản nguồn hợp lệ và / hoặc tên tài khoản nguồn hợp lệ để tiếp tục.', | ||
|  |     'transfer_source_bad_data'  => 'Không thể tìm thấy tài khoản nguồn hợp lệ khi tìm kiếm ID ":id" hoặc tên ":name".', | ||
|  |     'transfer_dest_need_data'   => 'Cần lấy ID tài khoản đích hợp lệ và / hoặc tên tài khoản đích hợp lệ để tiếp tục.', | ||
|  |     'transfer_dest_bad_data'    => 'Không thể tìm thấy tài khoản đích hợp lệ khi tìm kiếm ID ":id" hoặc tên ":name".', | ||
|  |     'need_id_in_edit'           => 'Mỗi phân chia phải có giao dịch_journal_id (ID hợp lệ hoặc 0).', | ||
|  | 
 | ||
|  |     'ob_source_need_data' => 'Cần lấy ID tài khoản nguồn hợp lệ và / hoặc tên tài khoản nguồn hợp lệ để tiếp tục.', | ||
|  |     'ob_dest_need_data'   => 'Cần lấy ID tài khoản đích hợp lệ và / hoặc tên tài khoản đích hợp lệ để tiếp tục.', | ||
|  |     'ob_dest_bad_data'    => 'Không thể tìm thấy tài khoản đích hợp lệ khi tìm kiếm ID ":id" hoặc tên ":name".', | ||
|  | 
 | ||
|  |     'generic_invalid_source'      => 'Bạn không thể sử dụng tài khoản này làm tài khoản nguồn.', | ||
|  |     'generic_invalid_destination' => 'Bạn không thể sử dụng tài khoản này làm tài khoản đích.', | ||
|  | 
 | ||
|  |     'gte.numeric' => 'Thuộc tính: phải lớn hơn hoặc bằng: .', | ||
|  |     'gte.file'    => 'Thuộc tính: phải lớn hơn hoặc bằng: kilobyte.', | ||
|  |     'gte.string'  => 'Thuộc tính: phải lớn hơn hoặc bằng: ký tự.', | ||
|  |     'gte.array'   => 'Thuộc tính: phải có: các mục giá trị trở lên.', | ||
|  | 
 | ||
|  |     'amount_required_for_auto_budget' => 'The amount is required.', | ||
|  |     'auto_budget_amount_positive'     => 'The amount must be more than zero.', | ||
|  |     'auto_budget_period_mandatory' => 'The auto budget period is a mandatory field.', | ||
|  | ]; |