feat(i18n): add Vietnamese (vi) locale (#2043)

* feat(i18n): add Vietnamese (vi) locale

- Add "vi" to SUPPORTED_LOCALES in LanguagesHelper
- Create 110 vi.yml translation files across all locale directories:
  breadcrumbs, models (27 files), views (75+ files), mailers, doorkeeper
- All files validated as valid YAML with no interpolation mismatches
- Fallback to English for any untranslated keys via existing fallbacks config

* fix(i18n): apply CodeRabbit review fixes to Vietnamese locale

- breadcrumbs: securities → Chứng khoán (was duplicate of security/Bảo mật)
- period label_short: distinguish years from days (5Năm/10Năm/NĐN vs N for days)
- imports: localize "Hover" → "Di chuột" in error hint
- recurring_transactions: transfer_feature_disabled uses "Chuyển khoản" not "Giao dịch"
- reports: YTD period labels "NNN %{year}" → "Từ đầu năm %{year}"
- sso_identities: explicit unlink success message instead of generic "Thành công"
- simplefin_items: standardize branding SimpleFin → SimpleFIN (4 occurrences)
- transactions: rename duplicate YAML key merge_duplicate → merge_duplicate_button
This commit is contained in:
Tân Một Nắng
2026-05-30 06:32:30 +07:00
committed by GitHub
parent 84ad60d541
commit 7ad287c4db
112 changed files with 7272 additions and 1 deletions

View File

@@ -168,7 +168,8 @@ module LanguagesHelper
"zh-CN", # Chinese (Simplified)
"zh-TW", # Chinese (Traditional)
"nl", # Dutch
"hu" # Hungarian
"hu", # Hungarian
"vi" # Vietnamese
].freeze
COUNTRY_MAPPING = {

View File

@@ -0,0 +1,87 @@
---
vi:
breadcrumbs:
account_sharings: Chia sẻ tài khoản
account_statements: Kho sao kê
accounts: Tài khoản
ai_prompts: Câu lệnh AI
api_key: Khóa API
api_keys: Khóa API
appearance: Giao diện
appearances: Giao diện
bank_sync: Đồng bộ ngân hàng
binance_items: Binance
brex_items: Brex
budget_categories: Danh mục ngân sách
budgets: Ngân sách
categories: Danh mục
categorize: Phân loại
chats: Trò chuyện
coinbase_items: Coinbase
coinstats_items: CoinStats
credit_cards: Thẻ tín dụng
cryptos: Tiền mã hóa
dashboard: Bảng điều khiển
debug: Gỡ lỗi
debugs: Gỡ lỗi
depositories: Tài khoản tiền mặt
enable_banking_items: Enable Banking
exports: Xuất dữ liệu
family_exports: Xuất dữ liệu
family_merchants: Nhà cung cấp
guides: Hướng dẫn
holdings: Danh mục nắm giữ
home: Trang chủ
hostings: Tự lưu trữ
ibkr_items: Interactive Brokers
impersonation_sessions: Mạo danh
imports: Nhập dữ liệu
indexa_capital_items: Indexa Capital
intro: Giới thiệu
investments: Đầu tư
invitations: Lời mời
invite_codes: Mã mời
kraken_items: Kraken
llm_usage: Sử dụng LLM
llm_usages: Sử dụng LLM
loans: Khoản vay
lunchflow_items: Lunch Flow
merchants: Nhà cung cấp
mercury_items: Mercury
messages: Tin nhắn
mfa: Xác thực hai yếu tố
oidc_accounts: Tài khoản SSO
onboardings: Khởi đầu
other_assets: Tài sản khác
other_liabilities: Nợ khác
payments: Thanh toán
pending_duplicate_merges: Xem xét trùng lặp
plaid_items: Plaid
preferences: Tùy chọn
profile: Thông tin hồ sơ
profiles: Thông tin hồ sơ
properties: Bất động sản
providers: Nhà cung cấp dịch vụ
recurring_transactions: Định kỳ
registrations: Đăng ký
reports: Báo cáo
rules: Quy tắc
securities: Chứng khoán
security: Bảo mật
self_hosting: Tự lưu trữ
sessions: Đăng nhập
simplefin_items: SimpleFIN
snaptrade_items: SnapTrade
sophtron_items: Sophtron
splits: Phân chia
sso_identities: Kết nối SSO
sso_providers: Nhà cung cấp SSO
subscriptions: Gói đăng ký
tags: Nhãn
trades: Giao dịch chứng khoán
transactions: Giao dịch
transfer_matches: Khớp chuyển khoản
transfers: Chuyển khoản
users: Người dùng
valuations: Định giá
vehicles: Phương tiện

View File

@@ -0,0 +1,149 @@
vi:
activerecord:
attributes:
doorkeeper/application:
name: 'Tên'
redirect_uri: 'URI chuyển hướng'
errors:
models:
doorkeeper/application:
attributes:
redirect_uri:
fragment_present: 'không được chứa fragment.'
invalid_uri: 'phải là URI hợp lệ.'
unspecified_scheme: 'phải chỉ định scheme.'
relative_uri: 'phải là URI tuyệt đối.'
secured_uri: 'phải là URI HTTPS/SSL.'
forbidden_uri: 'bị cấm bởi máy chủ.'
scopes:
not_match_configured: "không khớp với cấu hình trên máy chủ."
doorkeeper:
applications:
confirmations:
destroy: 'Bạn có chắc không?'
buttons:
edit: 'Chỉnh sửa'
destroy: 'Xóa'
submit: 'Gửi'
cancel: 'Hủy'
authorize: 'Ủy quyền'
form:
error: 'Ối! Kiểm tra biểu mẫu để phát hiện lỗi'
help:
confidential: 'Ứng dụng sẽ được sử dụng khi client secret có thể được giữ bí mật. Ứng dụng di động native và SPA được coi là không bảo mật.'
redirect_uri: 'Dùng một dòng cho mỗi URI'
blank_redirect_uri: "Để trống nếu bạn đã cấu hình nhà cung cấp sử dụng Client Credentials, Resource Owner Password Credentials hoặc loại cấp khác không yêu cầu redirect URI."
scopes: 'Phân tách phạm vi bằng khoảng trắng. Để trống để dùng phạm vi mặc định.'
edit:
title: 'Chỉnh sửa ứng dụng'
index:
title: 'Ứng dụng của bạn'
new: 'Ứng dụng mới'
name: 'Tên'
callback_url: 'URL callback'
confidential: 'Bảo mật?'
actions: 'Hành động'
confidentiality:
'yes': 'Có'
'no': 'Không'
new:
title: 'Ứng dụng mới'
show:
title: 'Ứng dụng: %{name}'
application_id: 'UID'
secret: 'Bí mật'
secret_hashed: 'Bí mật đã mã hóa'
scopes: 'Phạm vi'
confidential: 'Bảo mật'
callback_urls: 'URL callback'
actions: 'Hành động'
not_defined: 'Chưa xác định'
authorizations:
buttons:
authorize: 'Ủy quyền'
deny: 'Từ chối'
error:
title: 'Đã xảy ra lỗi'
go_back: 'Quay lại'
new:
title: 'Yêu cầu ủy quyền'
prompt: 'Ủy quyền cho %{client_name} sử dụng tài khoản của bạn?'
able_to: 'Ứng dụng này sẽ có thể'
show:
title: 'Mã ủy quyền'
authorization_code_label: 'Mã ủy quyền:'
copy_instructions: 'Sao chép mã này và dán vào ứng dụng.'
form_post:
title: 'Gửi biểu mẫu này'
authorized_applications:
confirmations:
revoke: 'Bạn có chắc không?'
buttons:
revoke: 'Thu hồi'
index:
title: 'Ứng dụng đã được ủy quyền'
application: 'Ứng dụng'
created_at: 'Ngày tạo'
date_format: '%d-%m-%Y %H:%M:%S'
pre_authorization:
status: 'Tiền ủy quyền'
errors:
messages:
invalid_request:
unknown: 'Yêu cầu thiếu tham số bắt buộc, bao gồm giá trị tham số không được hỗ trợ, hoặc có định dạng sai.'
missing_param: 'Thiếu tham số bắt buộc: %{value}.'
request_not_authorized: 'Yêu cầu cần được ủy quyền. Tham số bắt buộc để ủy quyền yêu cầu bị thiếu hoặc không hợp lệ.'
invalid_code_challenge: 'Cần có code challenge.'
invalid_redirect_uri: "URI chuyển hướng được yêu cầu không hợp lệ hoặc không khớp với URI chuyển hướng của client."
unauthorized_client: 'Client không được phép thực hiện yêu cầu này bằng phương thức này.'
access_denied: 'Chủ sở hữu tài nguyên hoặc máy chủ ủy quyền đã từ chối yêu cầu.'
invalid_scope: 'Phạm vi được yêu cầu không hợp lệ, không xác định, hoặc có định dạng sai.'
invalid_code_challenge_method:
zero: 'Máy chủ ủy quyền không hỗ trợ PKCE vì không có giá trị code_challenge_method được chấp nhận.'
one: 'code_challenge_method phải là %{challenge_methods}.'
other: 'code_challenge_method phải là một trong %{challenge_methods}.'
server_error: 'Máy chủ ủy quyền gặp điều kiện không mong muốn ngăn không thể thực hiện yêu cầu.'
temporarily_unavailable: 'Máy chủ ủy quyền hiện không thể xử lý yêu cầu do quá tải tạm thời hoặc bảo trì.'
credential_flow_not_configured: 'Luồng Resource Owner Password Credentials thất bại do Doorkeeper.configure.resource_owner_from_credentials chưa được cấu hình.'
resource_owner_authenticator_not_configured: 'Tìm Resource Owner thất bại do Doorkeeper.configure.resource_owner_authenticator chưa được cấu hình.'
admin_authenticator_not_configured: 'Truy cập bảng quản trị bị cấm do Doorkeeper.configure.admin_authenticator chưa được cấu hình.'
unsupported_response_type: 'Máy chủ ủy quyền không hỗ trợ loại phản hồi này.'
unsupported_response_mode: 'Máy chủ ủy quyền không hỗ trợ chế độ phản hồi này.'
invalid_client: 'Xác thực client thất bại do client không xác định, không có xác thực client, hoặc phương thức xác thực không được hỗ trợ.'
invalid_grant: 'Authorization grant được cung cấp không hợp lệ, đã hết hạn, bị thu hồi, không khớp với URI chuyển hướng được dùng trong yêu cầu ủy quyền, hoặc được cấp cho client khác.'
unsupported_grant_type: 'Loại authorization grant không được máy chủ ủy quyền hỗ trợ.'
invalid_token:
revoked: "Access token đã bị thu hồi"
expired: "Access token đã hết hạn"
unknown: "Access token không hợp lệ"
revoke:
unauthorized: "Bạn không được phép thu hồi token này"
forbidden_token:
missing_scope: 'Truy cập tài nguyên này yêu cầu phạm vi "%{oauth_scopes}".'
flash:
applications:
create:
notice: 'Đã tạo ứng dụng.'
destroy:
notice: 'Đã xóa ứng dụng.'
update:
notice: 'Đã cập nhật ứng dụng.'
authorized_applications:
destroy:
notice: 'Đã thu hồi ứng dụng.'
layouts:
admin:
title: 'Doorkeeper'
nav:
oauth2_provider: 'Nhà cung cấp OAuth2'
applications: 'Ứng dụng'
home: 'Trang chủ'
application:
title: 'Yêu cầu ủy quyền OAuth'

View File

@@ -0,0 +1,5 @@
---
vi:
invitation_mailer:
invite_email:
subject: "%{inviter} đã mời bạn tham gia hộ gia đình của họ trên %{product_name}!"

View File

@@ -0,0 +1,5 @@
---
vi:
pdf_import_mailer:
next_steps:
subject: "Tài liệu PDF của bạn đã được phân tích - %{product_name}"

View File

@@ -0,0 +1,34 @@
---
vi:
account_order:
balance_asc:
label: Số dư (Thấp đến Cao)
label_short: Số dư ↑
balance_desc:
label: Số dư (Cao đến Thấp)
label_short: Số dư ↓
name_asc:
label: Tên (A-Z)
label_short: Tên ↑
name_desc:
label: Tên (Z-A)
label_short: Tên ↓
activerecord:
attributes:
account:
balance: Số dư
currency: Tiền tệ
family: "%{moniker}"
family_id: "%{moniker}"
name: Tên
subtype: Loại phụ
models:
account: Tài khoản
account/credit: Thẻ tín dụng
account/depository: Tài khoản ngân hàng
account/investment: Đầu tư
account/loan: Khoản vay
account/other_asset: Tài sản khác
account/other_liability: Nợ khác
account/property: Bất động sản
account/vehicle: Phương tiện

View File

@@ -0,0 +1,30 @@
---
vi:
activerecord:
attributes:
account_statement:
account: Tài khoản
account_last4_hint: Bốn số cuối tài khoản
account_name_hint: Gợi ý tên tài khoản
closing_balance: Số dư đóng kỳ
content_sha256: Mã kiểm tra nội dung
currency: Tiền tệ
filename: Tên tệp
institution_name_hint: Gợi ý tổ chức
opening_balance: Số dư mở kỳ
original_file: Tệp sao kê
period_end_on: Ngày kết thúc kỳ
period_start_on: Ngày bắt đầu kỳ
errors:
models:
account_statement:
attributes:
checksum:
duplicate_statement_file: đã được tải lên cho hộ gia đình này
content_sha256:
duplicate_statement_file: đã được tải lên cho hộ gia đình này
original_file:
invalid_format: phải là tệp PDF, CSV hoặc XLSX
too_large: quá lớn. Kích thước tối đa là %{max_mb}MB
period_end_on:
on_or_after_start: phải từ ngày bắt đầu kỳ trở đi

View File

@@ -0,0 +1,11 @@
---
vi:
address:
attributes:
country: Quốc gia
line1: Địa chỉ dòng 1
line2: Địa chỉ dòng 2
locality: Địa phương
postal_code: Mã bưu chính
region: Vùng
format: "%{line1} %{line2}, %{locality}, %{region} %{postal_code} %{country}"

View File

@@ -0,0 +1,7 @@
---
vi:
activerecord:
errors:
models:
api_key:
cannot_destroy_demo_key: "Không thể xóa khóa API theo dõi demo"

View File

@@ -0,0 +1,14 @@
---
vi:
activerecord:
attributes:
brex_item:
base_url: URL cơ sở
name: Tên kết nối
token: Token
errors:
models:
brex_item:
attributes:
base_url:
official_hosts_only: phải để trống, https://api.brex.com, hoặc https://api-staging.brex.com

View File

@@ -0,0 +1,29 @@
---
vi:
models:
category:
uncategorized: Chưa phân loại
other_investments: Đầu tư khác
investment_contributions: Đóng góp đầu tư
defaults:
income: Thu nhập
food_and_drink: Ăn uống
groceries: Thực phẩm
shopping: Mua sắm
transportation: Giao thông
travel: Du lịch
entertainment: Giải trí
healthcare: Chăm sóc sức khỏe
personal_care: Chăm sóc cá nhân
home_improvement: Cải thiện nhà ở
mortgage_rent: Thế chấp / Thuê nhà
utilities: Tiện ích
subscriptions: Đăng ký dịch vụ
insurance: Bảo hiểm
sports_and_fitness: Thể thao & Thể hình
gifts_and_donations: Quà tặng & Từ thiện
taxes: Thuế
loan_payments: Thanh toán khoản vay
services: Dịch vụ
fees: Phí
savings_and_investments: Tiết kiệm & Đầu tư

View File

@@ -0,0 +1,8 @@
---
vi:
activerecord:
errors:
models:
category_import:
own_parent: "Danh mục '%{name}' không thể là danh mục cha của chính nó"
missing_columns: "Thiếu các cột bắt buộc: %{columns}"

View File

@@ -0,0 +1,8 @@
---
vi:
chat:
errors:
rate_limited: "Nhà cung cấp AI đang bị giới hạn tốc độ. Vui lòng thử lại sau vài phút."
temporarily_unavailable: "Nhà cung cấp AI tạm thời không khả dụng. Vui lòng thử lại sau vài phút."
misconfigured: "Nhà cung cấp AI chưa được cấu hình đúng. Vui lòng liên hệ quản trị viên."
default: "Không thể tạo phản hồi. Vui lòng thử lại."

View File

@@ -0,0 +1,5 @@
---
vi:
coinbase:
processor:
paid_via: "Thanh toán qua %{method}"

View File

@@ -0,0 +1,10 @@
---
vi:
models:
coinstats_item:
syncer:
importing_wallets: Đang nhập tài khoản tiền mã hóa từ CoinStats...
checking_configuration: Đang kiểm tra cấu hình tài khoản CoinStats...
wallets_need_setup: "%{count} tài khoản tiền mã hóa cần thiết lập..."
processing_holdings: Đang xử lý danh mục nắm giữ...
calculating_balances: Đang tính số dư...

View File

@@ -0,0 +1,9 @@
---
vi:
activerecord:
errors:
models:
entry:
attributes:
base:
invalid_sell_quantity: không thể bán %{sell_qty} cổ phiếu %{ticker} vì bạn chỉ đang nắm giữ %{current_qty} cổ phiếu

View File

@@ -0,0 +1,18 @@
---
vi:
activerecord:
attributes:
import:
col_sep: Dấu phân cách cột
col_seps:
comma: Dấu phẩy (,)
semicolon: Dấu chấm phẩy (;)
currency: Tiền tệ
number_format: Định dạng số
errors:
models:
import:
duplicate_headers: "Tiêu đề CSV chuẩn hóa thành các cột trùng lặp: %{columns}"
attributes:
raw_file_str:
invalid_csv_format: không phải định dạng CSV hợp lệ

View File

@@ -0,0 +1,7 @@
---
vi:
activerecord:
errors:
models:
indexa_capital_item:
credentials_required: "Cần có biến môi trường INDEXA_API_TOKEN hoặc thông tin đăng nhập username/document/password"

View File

@@ -0,0 +1,54 @@
---
vi:
period:
last_day:
label_short: "1N"
label: "Hôm qua"
comparison_label: "so với hôm qua"
current_week:
label_short: "TNN"
label: "Tuần này"
comparison_label: "so với đầu tuần"
last_7_days:
label_short: "7N"
label: "7 Ngày Qua"
comparison_label: "so với tuần trước"
current_month:
label_short: "TTN"
label: "Tháng này"
comparison_label: "so với đầu tháng"
last_month:
label_short: "TT"
label: "Tháng Trước"
comparison_label: "so với tháng trước"
last_30_days:
label_short: "30N"
label: "30 Ngày Qua"
comparison_label: "so với 30 ngày trước"
last_90_days:
label_short: "90N"
label: "90 Ngày Qua"
comparison_label: "so với quý trước"
current_year:
label_short: "NĐN"
label: "Năm này"
comparison_label: "so với đầu năm"
last_365_days:
label_short: "365N"
label: "365 Ngày Qua"
comparison_label: "so với 1 năm trước"
last_5_years:
label_short: "5Năm"
label: "5 Năm Qua"
comparison_label: "so với 5 năm trước"
last_10_years:
label_short: "10Năm"
label: "10 Năm Qua"
comparison_label: "so với 10 năm trước"
all_time:
label_short: "Tất cả"
label: "Toàn thời gian"
comparison_label: "so với ban đầu"
custom:
label_short: "Tùy chỉnh"
label: "Khoảng thời gian tùy chỉnh"

View File

@@ -0,0 +1,7 @@
---
vi:
activerecord:
errors:
models:
plaid_account:
no_balance: "Tài khoản Plaid phải có số dư hiện tại hoặc số dư khả dụng"

View File

@@ -0,0 +1,4 @@
---
vi:
provider_warnings:
limited_investment_data: "Dữ liệu đầu tư từ nhà cung cấp này còn hạn chế. Nhãn hoạt động (Mua, Bán, Cổ tức) không khả dụng, có thể ảnh hưởng đến độ chính xác của ngân sách. Hãy cân nhắc tạo quy tắc để loại trừ hoặc phân loại các giao dịch đầu tư."

View File

@@ -0,0 +1,7 @@
---
vi:
activerecord:
errors:
models:
recurring_transaction:
merchant_or_name_required: "Phải có nhà cung cấp hoặc tên"

View File

@@ -0,0 +1,9 @@
---
vi:
activerecord:
errors:
models:
rule:
min_actions: "phải có ít nhất một hành động"
duplicate_actions: "Quy tắc không được có các hành động trùng lặp %{types}"
nested_conditions: "Điều kiện phức hợp không thể lồng nhau"

View File

@@ -0,0 +1,9 @@
---
vi:
activerecord:
errors:
models:
rule_import:
unsupported_resource_type: "Loại tài nguyên không được hỗ trợ: %{resource_type}"
invalid_json: "JSON không hợp lệ trong điều kiện hoặc hành động: %{message}"
min_actions: "Quy tắc phải có ít nhất một hành động"

View File

@@ -0,0 +1,7 @@
---
vi:
activerecord:
errors:
models:
simplefin_account:
no_balance: "Tài khoản SimpleFin phải có số dư hiện tại hoặc số dư khả dụng"

View File

@@ -0,0 +1,7 @@
---
vi:
activerecord:
errors:
models:
sophtron_account:
no_balance: "Tài khoản Sophtron phải có số dư hiện tại hoặc số dư khả dụng"

View File

@@ -0,0 +1,12 @@
---
vi:
activerecord:
errors:
models:
sso_provider:
attributes:
settings:
saml_url_required: "Cần có URL Metadata IdP hoặc URL SSO IdP cho nhà cung cấp SAML"
saml_cert_required: "Cần có Chứng chỉ IdP hoặc Certificate Fingerprint khi không dùng metadata URL"
metadata_url_invalid: "URL Metadata IdP phải là URL hợp lệ"
sso_url_invalid: "URL SSO IdP phải là URL hợp lệ"

View File

@@ -0,0 +1,9 @@
---
vi:
activemodel:
errors:
models:
time_series/value:
attributes:
value:
must_be_a_money_or_numeric: phải là kiểu Money hoặc Numeric

View File

@@ -0,0 +1,11 @@
---
vi:
activerecord:
errors:
models:
transaction:
attributes:
attachments:
too_many: "không được vượt quá %{max} tệp mỗi giao dịch"
too_large: "tệp %{index} quá lớn (tối đa %{max_mb}MB)"
invalid_format: "tệp %{index} có định dạng không được hỗ trợ (%{file_format})"

View File

@@ -0,0 +1,22 @@
---
vi:
activerecord:
errors:
models:
transfer:
attributes:
base:
inflow_cannot_be_in_multiple_transfers: Giao dịch nhận tiền không thể thuộc nhiều lần chuyển khoản
must_be_from_different_accounts: Chuyển khoản phải giữa hai tài khoản khác nhau
must_be_from_same_family: Chuyển khoản phải trong cùng một hộ gia đình
must_be_within_date_range: Ngày giao dịch chuyển khoản phải trong vòng 4 ngày nhau
must_have_opposite_amounts: Các giao dịch chuyển khoản phải có số tiền đối nghịch nhau
must_have_single_currency: Chuyển khoản phải sử dụng một loại tiền tệ duy nhất
outflow_cannot_be_in_multiple_transfers: Giao dịch gửi tiền không thể thuộc nhiều lần chuyển khoản
different_accounts: "Phải từ hai tài khoản khác nhau"
same_family: "Phải trong cùng một hộ gia đình"
opposite_amounts: "Phải có số tiền đối nghịch nhau"
within_days: "Phải trong vòng %{count} ngày"
transfer:
name: Chuyển khoản đến %{to_account}
payment_name: Thanh toán đến %{to_account}

View File

@@ -0,0 +1,13 @@
---
vi:
activemodel:
errors:
models:
trend:
attributes:
current:
must_be_of_the_same_type_as_previous: phải cùng kiểu với giá trị trước
must_be_of_type_money_numeric_or_nil: phải là kiểu Money, Numeric, hoặc nil
previous:
must_be_of_the_same_type_as_current: phải cùng kiểu với giá trị hiện tại
must_be_of_type_money_numeric_or_nil: phải là kiểu Money, Numeric, hoặc nil

View File

@@ -0,0 +1,20 @@
---
vi:
activerecord:
attributes:
user:
email: Email
family: "%{moniker}"
family_id: "%{moniker}"
first_name: Tên
last_name: Họ
password: Mật khẩu
password_confirmation: Xác nhận mật khẩu
errors:
models:
user:
attributes:
base:
cannot_deactivate_admin_with_other_users: Quản trị viên không thể xóa tài khoản khi còn người dùng khác. Vui lòng xóa tất cả thành viên trước.
profile_image:
invalid_file_size: kích thước tệp phải nhỏ hơn %{max_megabytes}MB

View File

@@ -0,0 +1,29 @@
---
vi:
account_sharings:
show:
title: Chia sẻ tài khoản
subtitle: Kiểm soát ai có thể xem và tương tác với tài khoản này
member: Thành viên
permission: Quyền
shared: Đã chia sẻ
no_members: Không có thành viên nào khác trong %{moniker} để chia sẻ
permissions:
full_control: Toàn quyền kiểm soát
full_control_description: Có thể xem, chỉnh sửa và quản lý giao dịch
read_write: Có thể chú thích
read_write_description: Có thể phân loại, gắn nhãn và thêm ghi chú
read_only: Chỉ xem
read_only_description: Chỉ có thể xem dữ liệu tài khoản
save: Lưu cài đặt chia sẻ
owner_label: "Chủ sở hữu: %{name}"
shared_with_count:
one: Đã chia sẻ với 1 thành viên
other: "Đã chia sẻ với %{count} thành viên"
include_in_finances: Tính vào ngân sách & báo cáo của tôi
exclude_from_finances: Loại khỏi ngân sách & báo cáo của tôi
finance_toggle_description: Tính tài khoản này vào tài sản ròng, ngân sách và báo cáo của bạn
update:
success: Cài đặt chia sẻ đã được cập nhật
not_owner: Chỉ chủ sở hữu tài khoản mới có thể quản lý chia sẻ
finance_toggle_success: Tùy chọn bao gồm tài chính đã được cập nhật

View File

@@ -0,0 +1,116 @@
---
vi:
account_statements:
account_tab:
coverage_title: Phạm vi sao kê
coverage_description: Các tháng lịch sử được hỗ trợ bởi sao kê đã tải lên và kiểm tra số dư.
coverage_range: "%{start} - %{end}"
empty: Chưa có sao kê nào được liên kết với tài khoản này.
open_inbox: Hộp thư đến
statements_title: Sao kê
year_label: Năm phạm vi
balance:
unknown: Không xác định
coverage:
status:
ambiguous: Không rõ ràng
covered: Đã phủ
duplicate: Trùng lặp
mismatched: Không khớp
missing: Thiếu
not_expected: Không mong đợi
create:
duplicates:
one: 1 sao kê trùng lặp đã bị bỏ qua.
other: "%{count} sao kê trùng lặp đã bị bỏ qua."
invalid_file_type: Tải lên sao kê dạng PDF, CSV hoặc XLSX dưới giới hạn kích thước.
no_files: Chọn ít nhất một tệp sao kê.
success:
one: 1 sao kê đã được tải lên.
other: "%{count} sao kê đã được tải lên."
destroy:
failure: Không thể xóa sao kê.
success: Sao kê đã được xóa.
form:
account_upload: Tải lên sao kê
files_hint: PDF, CSV hoặc XLSX. Tối đa %{max_size}MB mỗi tệp.
files_label: Tệp sao kê
inbox_upload: Tải lên
index:
account_label: Tài khoản
confidence: "Khớp %{confidence}"
empty_linked: Chưa có sao kê nào được liên kết.
empty_unmatched: Hộp thư sao kê đang trống.
leave_unmatched: Để không khớp
linked_title: Sao kê đã liên kết
no_suggestion: Không có gợi ý
storage_used: Dung lượng đã sử dụng
title: Kho lưu trữ sao kê
unmatched_title: Hộp thư chưa khớp
upload_description: Tải lên sao kê vào hộp thư, hoặc chọn tài khoản để liên kết ngay.
upload_title: Tải lên sao kê
link:
no_account: Chọn một tài khoản trước khi liên kết sao kê này.
success: Đã liên kết sao kê với %{account}.
period:
unknown: Kỳ không xác định
reconciliation:
checks:
closing_balance: Số dư cuối kỳ
opening_balance: Số dư đầu kỳ
period_movement: Biến động trong kỳ
unknown_check: Kiểm tra không xác định
matched: Khớp
mismatched: Không khớp
unavailable: Chưa kiểm tra
reject:
success: Gợi ý khớp sao kê đã bị từ chối.
show:
account_label: Tài khoản
account_last4_hint: Bốn số cuối tài khoản
account_name_hint: Gợi ý tên tài khoản
closing_balance: Số dư cuối kỳ
currency: Tiền tệ
delete: Xóa
difference: Chênh lệch
download: Tải xuống
institution_name_hint: Gợi ý tổ chức
ledger_amount: Sổ cái Sure
linked_to: Đã liên kết với %{account}.
linking_title: Liên kết tài khoản
link_suggestion: Gợi ý liên kết
metadata_title: Siêu dữ liệu sao kê
no_suggestion: Chưa có gợi ý tài khoản nào.
opening_balance: Số dư đầu kỳ
period_end_on: Kết thúc kỳ
period_start_on: Bắt đầu kỳ
reconciliation_title: Đối soát
reconciliation_unavailable: Thêm kỳ sao kê và số dư đầu hoặc cuối kỳ, sau đó đảm bảo Sure có lịch sử số dư cho các ngày đó.
reject: Từ chối
save: Lưu sao kê
statement_amount: Sao kê
suggested_account: Tài khoản được gợi ý là %{account} (độ tin cậy %{confidence}).
title: Sao kê
unlink: Hủy liên kết
unmatched_account: Hộp thư chưa khớp
unknown_value: Không xác định
status:
linked: Đã liên kết
rejected: Đã từ chối
unmatched: Chưa khớp
table:
account: Tài khoản
actions: Hành động
download: Tải xuống
file: Tệp
link_suggestion: Gợi ý liên kết
period: Kỳ
reconciliation: Đối soát
reject: Từ chối gợi ý
suggestion: Gợi ý
unlink: Hủy liên kết
view: Xem
unlink:
success: Sao kê đã được chuyển lại hộp thư chưa khớp.
update:
success: Sao kê đã được cập nhật.

View File

@@ -0,0 +1,192 @@
---
vi:
account:
entries:
destroy:
success: "Mục nhập đã được xóa thành công."
accounts:
not_authorized: "Bạn không có quyền quản lý tài khoản này"
account:
complete_setup: Hoàn thành thiết lập
edit: Chỉnh sửa
link_lunchflow: Liên kết với Lunch Flow
link_provider: Liên kết với nhà cung cấp
unlink_provider: Hủy liên kết với nhà cung cấp
change_simplefin_account: Thay đổi tài khoản SimpleFIN
troubleshoot: Khắc phục sự cố
enable: Bật tài khoản
disable: Tắt tài khoản
set_default: Đặt làm mặc định
remove_default: Bỏ mặc định
default_label: Mặc định
delete: Xóa tài khoản
sharing: Chia sẻ
chart:
data_not_available: Dữ liệu không khả dụng cho khoảng thời gian đã chọn
create:
success: "Đã tạo tài khoản %{type}"
set_default:
depository_only: "Chỉ tài khoản tiền mặt và thẻ tín dụng mới có thể đặt làm mặc định."
destroy:
success: "Tài khoản %{type} đã được lên lịch xóa"
cannot_delete_linked: "Không thể xóa tài khoản đã liên kết. Vui lòng hủy liên kết trước."
failed: "Xóa tài nguyên thất bại. Vui lòng thử lại sau."
empty:
empty_message: Thêm tài khoản qua kết nối, nhập dữ liệu hoặc nhập thủ công.
new_account: Tài khoản mới
no_accounts: Chưa có tài khoản nào
form:
balance: "Số dư ngày:"
opening_balance_date_label: Ngày số dư mở đầu
name_label: Tên tài khoản
name_placeholder: Ví dụ tên tài khoản
additional_details: Thông tin bổ sung
institution_name_label: Tên tổ chức
institution_name_placeholder: "ví dụ: Ngân hàng Vietcombank"
institution_domain_label: Tên miền tổ chức
institution_domain_placeholder: "ví dụ: vietcombank.com.vn"
notes_label: Ghi chú
notes_placeholder: Lưu thêm thông tin như số tài khoản, mã định tuyến, IBAN, v.v.
index:
accounts: Tài khoản
manual_accounts:
other_accounts: Tài khoản khác
new_account: Tài khoản mới
sync: Đồng bộ tất cả
sync_all:
syncing: "Đang đồng bộ tài khoản..."
new:
import_accounts: Nhập tài khoản
container:
select: Chọn
navigate: Điều hướng
close: Đóng
method_selector:
connected_entry: Liên kết tài khoản
connected_entry_eu: Liên kết tài khoản EU
link_with_provider: "Liên kết với %{provider}"
lunchflow_entry: Liên kết tài khoản Lunch Flow
manual_entry: Nhập số dư tài khoản
title: Bạn muốn thêm bằng cách nào?
title: Bạn muốn thêm gì?
show:
limited_fx_history_warning: "Lịch sử tỷ giá hối đoái chỉ khả dụng từ %{date} trở đi. Các giao dịch trước ngày này sử dụng chuyển đổi tiền tệ xấp xỉ."
tabs:
activity: Hoạt động
holdings: Danh mục nắm giữ
overview: Tổng quan
statements: Sao kê
activity:
amount: Số tiền
balance: Số dư
confirmed: Đã xác nhận
date: Ngày
entries: mục nhập
entry: mục nhập
filter: Lọc
new: Mới
new_activity: Hoạt động mới
new_balance: Số dư mới
new_trade: Giao dịch mới
new_transaction: Giao dịch mới
new_transfer: Chuyển khoản mới
no_entries: Không tìm thấy mục nhập
pending: Đang chờ
search:
placeholder: Tìm kiếm mục nhập theo tên
search_placeholder: Tìm kiếm mục nhập theo tên
status: Trạng thái
title: Hoạt động
chart:
balance: Số dư
owed: Số tiền nợ
header:
complete_setup: Hoàn thành thiết lập
menu:
confirm_accept: Xóa "%{name}"
confirm_body_html: "<p>Bằng cách xóa tài khoản này, bạn sẽ xóa lịch sử giá trị của nó, ảnh hưởng đến nhiều khía cạnh tài khoản tổng thể. Hành động này sẽ ảnh hưởng trực tiếp đến tính toán tài sản ròng và biểu đồ tài khoản.</p><br /> <p>Sau khi xóa, bạn không thể khôi phục thông tin tài khoản và cần thêm lại như tài khoản mới.</p>"
confirm_title: Xóa tài khoản?
delete_account: Xóa tài khoản
edit: Chỉnh sửa
import: Nhập giao dịch
import_trades: Nhập giao dịch chứng khoán
import_transactions: Nhập giao dịch
manage: Quản lý tài khoản
sharing: Chia sẻ
statements: Sao kê
update:
success: "Đã cập nhật tài khoản %{type}"
sidebar:
missing_data: Thiếu dữ liệu lịch sử
missing_data_description: "%{product} sử dụng nhà cung cấp bên thứ ba để lấy tỷ giá hối đoái lịch sử, giá chứng khoán và nhiều hơn nữa. Dữ liệu này cần thiết để tính số dư tài khoản lịch sử chính xác."
configure_providers: Cấu hình nhà cung cấp của bạn tại đây.
tabs:
all: Tất cả
assets: Tài sản
debts: Nợ
new_asset: Tài sản mới
new_debt: Nợ mới
new_account: Tài khoản mới
new_account_group: "Nhóm %{account_group} mới"
types:
depository: Tiền mặt
investment: Đầu tư
crypto: Tiền mã hóa
property: Bất động sản
vehicle: Phương tiện
other_asset: Tài sản khác
credit_card: Thẻ tín dụng
loan: Khoản vay
other_liability: Nợ khác
types_plural:
depository: Tiền mặt
investment: Đầu tư
crypto: Tiền mã hóa
property: Bất động sản
vehicle: Phương tiện
other_asset: Tài sản khác
credit_card: Thẻ tín dụng
loan: Khoản vay
other_liability: Nợ khác
tax_treatments:
taxable: Chịu thuế
tax_deferred: Hoãn thuế
tax_exempt: Miễn thuế
tax_advantaged: Ưu đãi thuế
tax_treatment_descriptions:
taxable: Lợi nhuận bị đánh thuế khi thực hiện
tax_deferred: Đóng góp được khấu trừ, đánh thuế khi rút
tax_exempt: Đóng góp sau thuế, lợi nhuận không bị đánh thuế
tax_advantaged: Lợi ích thuế đặc biệt có điều kiện
subtype_regions:
us: Hoa Kỳ
uk: Vương quốc Anh
ca: Canada
au: Úc
eu: Châu Âu
in: Ấn Độ
generic: Chung
confirm_unlink:
title: Hủy liên kết tài khoản với nhà cung cấp?
description_html: "Bạn đang hủy liên kết <strong>%{account_name}</strong> khỏi <strong>%{provider_name}</strong>. Tài khoản này sẽ được chuyển thành tài khoản thủ công."
warning_title: Điều này có nghĩa là gì
warning_no_sync: Tài khoản sẽ không còn tự động đồng bộ với nhà cung cấp
warning_manual_updates: Bạn cần thêm giao dịch và cập nhật số dư thủ công
warning_transactions_kept: Tất cả giao dịch và số dư hiện có sẽ được giữ nguyên
warning_can_delete: Sau khi hủy liên kết, bạn có thể xóa tài khoản nếu cần
confirm_button: Xác nhận và hủy liên kết
unlink:
success: "Tài khoản đã được hủy liên kết thành công. Bây giờ là tài khoản thủ công."
not_linked: "Tài khoản chưa được liên kết với nhà cung cấp"
error: "Hủy liên kết tài khoản thất bại: %{error}"
generic_error: "Đã xảy ra lỗi không mong muốn. Vui lòng thử lại."
select_provider:
title: Chọn nhà cung cấp để liên kết
description: "Chọn nhà cung cấp bạn muốn dùng để liên kết %{account_name}"
already_linked: "Tài khoản đã được liên kết với nhà cung cấp"
no_providers: "Hiện không có nhà cung cấp nào được cấu hình"
email_confirmations:
new:
invalid_token: Liên kết xác nhận không hợp lệ hoặc đã hết hạn.
success_login: Email của bạn đã được xác nhận. Vui lòng đăng nhập bằng địa chỉ email mới.

View File

@@ -0,0 +1,8 @@
---
vi:
admin:
invitations:
destroy:
success: "Lời mời đã được xóa."
destroy_all:
success: "Tất cả lời mời của gia đình này đã được xóa."

View File

@@ -0,0 +1,138 @@
---
vi:
admin:
unauthorized: "Bạn không được phép truy cập khu vực này."
sso_providers:
index:
page_title: "Nhà cung cấp SSO"
title: "Nhà cung cấp SSO"
description: "Quản lý các nhà cung cấp xác thực đăng nhập một lần cho phiên bản của bạn."
restart_required: "Các thay đổi yêu cầu khởi động lại máy chủ để có hiệu lực."
configured_providers: "Nhà cung cấp đã cấu hình"
add_provider: "Thêm nhà cung cấp"
no_providers_title: "Không có nhà cung cấp SSO"
no_providers_message: "Chưa có nhà cung cấp SSO nào được cấu hình."
note: "Các thay đổi đối với nhà cung cấp SSO yêu cầu khởi động lại máy chủ để có hiệu lực. Ngoài ra, hãy bật cờ tính năng AUTH_PROVIDERS_SOURCE=db để tải nhà cung cấp từ cơ sở dữ liệu một cách động."
enabled: "Đã bật"
disabled: "Đã tắt"
edit: "Chỉnh sửa"
enable: "Bật"
disable: "Tắt"
delete: "Xóa"
configuration_mode: "Chế độ cấu hình"
db_backed_providers: "Nhà cung cấp dựa trên cơ sở dữ liệu"
db_backed_providers_description: "Tải nhà cung cấp từ cơ sở dữ liệu thay vì cấu hình YAML"
db_backed_providers_help_html: "Đặt <code class=\"bg-surface px-1 py-0.5 rounded text-xs\">AUTH_PROVIDERS_SOURCE=db</code> để bật nhà cung cấp dựa trên cơ sở dữ liệu. Điều này cho phép thay đổi mà không cần khởi động lại máy chủ."
table:
name: "Tên"
strategy: "Chiến lược"
status: "Trạng thái"
issuer: "Nhà phát hành"
actions: "Hành động"
enabled: "Đã bật"
disabled: "Đã tắt"
legacy_providers_title: "Nhà cung cấp được cấu hình qua môi trường"
legacy_providers_notice: "Các nhà cung cấp này được cấu hình qua biến môi trường hoặc YAML và không thể quản lý thông qua giao diện này. Để quản lý ở đây, hãy di chuyển chúng sang nhà cung cấp dựa trên cơ sở dữ liệu bằng cách bật AUTH_PROVIDERS_SOURCE=db và tạo lại chúng trong giao diện."
env_configured: "Môi trường/YAML"
new:
title: "Thêm nhà cung cấp SSO"
description: "Cấu hình nhà cung cấp xác thực đăng nhập một lần mới"
edit:
title: "Chỉnh sửa nhà cung cấp SSO"
description: "Cập nhật cấu hình cho %{label}"
create:
success: "Nhà cung cấp SSO đã được tạo thành công."
update:
success: "Nhà cung cấp SSO đã được cập nhật thành công."
destroy:
success: "Nhà cung cấp SSO đã được xóa thành công."
confirm: "Bạn có chắc chắn muốn xóa nhà cung cấp này không? Hành động này không thể hoàn tác."
toggle:
success_enabled: "Nhà cung cấp SSO đã được bật thành công."
success_disabled: "Nhà cung cấp SSO đã được tắt thành công."
confirm_enable: "Bạn có chắc chắn muốn bật nhà cung cấp này không?"
confirm_disable: "Bạn có chắc chắn muốn tắt nhà cung cấp này không?"
form:
basic_information: "Thông tin cơ bản"
oauth_configuration: "Cấu hình OAuth/OIDC"
strategy_label: "Chiến lược"
strategy_help: "Chiến lược xác thực cần sử dụng"
strategy_openid_connect: "OpenID Connect"
strategy_saml: "SAML 2.0"
strategy_google_oauth2: "Google OAuth2"
strategy_github: "GitHub"
name_label: "Tên"
name_placeholder: "ví dụ: keycloak, authentik"
name_help: "Mã định danh duy nhất (chỉ chữ thường, số, dấu gạch dưới)"
label_label: "Nhãn nút"
label_placeholder: "ví dụ: Đăng nhập với Keycloak"
label_help: "Văn bản nút hiển thị cho người dùng"
icon_label: "Biểu tượng (tùy chọn)"
icon_placeholder: "ví dụ: key, shield"
icon_help: "Tên biểu tượng Lucide cho nút đăng nhập"
enabled_label: "Bật nhà cung cấp này"
enabled_help: "Người dùng có thể đăng nhập với nhà cung cấp này khi được bật"
issuer_label: "URL nhà phát hành"
issuer_placeholder: "https://your-idp.example.com/realms/your-realm"
issuer_help: "URL nhà phát hành OIDC (xác thực .well-known/openid-configuration)"
client_id_label: "Client ID"
client_id_placeholder: "your-client-id"
client_id_help: "OAuth client ID từ nhà cung cấp danh tính của bạn"
client_secret_label: "Client Secret"
client_secret_placeholder_new: "your-client-secret"
client_secret_placeholder_existing: "••••••••"
client_secret_help: "OAuth client secret (được mã hóa trong cơ sở dữ liệu)"
client_secret_help_existing: "Để trống để giữ nguyên secret hiện tại"
redirect_uri_label: "URL Callback"
redirect_uri_placeholder: "https://yourdomain.com/auth/openid_connect/callback"
redirect_uri_help: "Cấu hình URL này trong nhà cung cấp danh tính của bạn"
saml_sp_callback_url_label: "URL Callback SP (ACS URL)"
saml_sp_callback_url_help: "Cấu hình URL này là URL Assertion Consumer Service trong IdP của bạn"
copy_button: "Sao chép"
cancel: "Hủy"
submit: "Lưu nhà cung cấp"
create_provider: "Tạo nhà cung cấp"
update_provider: "Cập nhật nhà cung cấp"
errors_title:
one: "Một lỗi đã ngăn không thể lưu nhà cung cấp này:"
other: "%{count} lỗi đã ngăn không thể lưu nhà cung cấp này:"
provisioning_title: "Cấp phát người dùng"
default_role_label: "Vai trò mặc định cho người dùng mới"
default_role_help: "Vai trò được gán cho người dùng được tạo qua cấp phát tài khoản SSO tức thời (JIT). Mặc định là Thành viên."
role_guest: "Khách"
role_member: "Thành viên"
role_admin: "Quản trị viên"
role_super_admin: "Quản trị viên cấp cao"
role_mapping_title: "Ánh xạ nhóm sang vai trò (tùy chọn)"
role_mapping_help: "Ánh xạ các nhóm/claims của IdP sang vai trò ứng dụng. Người dùng được gán vai trò khớp cao nhất. Để trống để sử dụng vai trò mặc định ở trên."
super_admin_groups: "Nhóm quản trị viên cấp cao"
admin_groups: "Nhóm quản trị viên"
guest_groups: "Nhóm khách"
member_groups: "Nhóm thành viên"
groups_help: "Danh sách tên nhóm IdP phân cách bằng dấu phẩy. Dùng * để khớp tất cả các nhóm."
advanced_title: "Cài đặt OIDC nâng cao"
scopes_label: "Phạm vi tùy chỉnh"
scopes_help: "Danh sách phạm vi OIDC phân cách bằng dấu cách. Để trống cho mặc định (openid email profile). Thêm 'groups' để lấy claims nhóm."
prompt_label: "Lệnh nhắc xác thực"
prompt_default: "Mặc định (IdP quyết định)"
prompt_login: "Buộc đăng nhập (xác thực lại)"
prompt_consent: "Buộc đồng ý (ủy quyền lại)"
prompt_select_account: "Chọn tài khoản (chọn tài khoản)"
prompt_none: "Không nhắc (xác thực im lặng)"
prompt_help: "Kiểm soát cách IdP nhắc người dùng trong quá trình xác thực."
test_connection: "Kiểm tra kết nối"
saml_configuration: "Cấu hình SAML"
idp_metadata_url: "URL siêu dữ liệu IdP"
idp_metadata_url_help: "URL đến siêu dữ liệu SAML của IdP. Nếu được cung cấp, các cài đặt SAML khác sẽ được cấu hình tự động."
manual_saml_config: "Cấu hình thủ công (nếu không sử dụng URL siêu dữ liệu)"
manual_saml_help: "Chỉ sử dụng các cài đặt này nếu IdP của bạn không cung cấp URL siêu dữ liệu."
idp_sso_url: "URL SSO của IdP"
idp_slo_url: "URL SLO của IdP (tùy chọn)"
idp_certificate: "Chứng chỉ IdP"
idp_certificate_help: "Chứng chỉ X.509 ở định dạng PEM. Bắt buộc nếu không sử dụng URL siêu dữ liệu."
idp_cert_fingerprint: "Dấu vân tay chứng chỉ (thay thế)"
name_id_format: "Định dạng NameID"
name_id_email: "Địa chỉ email (mặc định)"
name_id_persistent: "Liên tục"
name_id_transient: "Tạm thời"
name_id_unspecified: "Không xác định"

View File

@@ -0,0 +1,53 @@
---
vi:
admin:
users:
index:
title: "Quản lý người dùng"
description: "Quản lý vai trò người dùng cho phiên bản của bạn. Quản trị viên cấp cao có thể truy cập cài đặt nhà cung cấp SSO và quản lý người dùng."
section_title: "Gia đình / Nhóm"
you: "(Bạn)"
trial_ends_at: "Kết thúc dùng thử"
not_available: "n/a"
no_users: "Không tìm thấy người dùng nào."
unnamed_family: "Gia đình/Nhóm chưa đặt tên"
no_subscription: "Không có gói đăng ký"
family_summary: "%{members} thành viên · %{accounts} tài khoản · %{transactions} giao dịch"
filters:
role: "Vai trò"
role_all: "Tất cả vai trò"
trial_status: "Trạng thái dùng thử"
trial_all: "Tất cả"
trial_expiring_soon: "Hết hạn trong 7 ngày"
trial_trialing: "Đang dùng thử"
submit: "Lọc"
summary:
trials_expiring_7_days: "Các bản dùng thử hết hạn trong 7 ngày tới"
table:
user: "Người dùng"
trial_ends_at: "Kết thúc dùng thử"
family_accounts: "Tài khoản gia đình"
family_transactions: "Giao dịch gia đình"
last_login: "Đăng nhập lần cuối"
session_count: "Số phiên"
never: "Chưa bao giờ"
role: "Vai trò"
role_descriptions_title: "Mô tả vai trò"
roles:
guest: "Khách"
member: "Thành viên"
admin: "Quản trị viên"
super_admin: "Quản trị viên cấp cao"
role_descriptions:
guest: "Trải nghiệm ưu tiên trợ lý với quyền hạn bị hạn chế có chủ ý cho quy trình giới thiệu."
member: "Quyền truy cập người dùng cơ bản. Có thể quản lý tài khoản, giao dịch và cài đặt của riêng họ."
admin: "Quản trị viên gia đình. Có thể truy cập các cài đặt nâng cao như khóa API, nhập dữ liệu và lệnh AI."
super_admin: "Quản trị viên phiên bản. Có thể quản lý nhà cung cấp SSO, vai trò người dùng và mạo danh người dùng để hỗ trợ."
invitations:
pending_label: "Đã mời (đang chờ)"
expires: "Hết hạn %{date}"
delete: "Xóa"
delete_all: "Xóa tất cả"
update:
success: "Vai trò người dùng đã được cập nhật thành công."
failure: "Không thể cập nhật vai trò người dùng."

View File

@@ -0,0 +1,10 @@
---
vi:
number:
currency:
format:
delimiter: ","
format: "%u%n"
precision: 2
separator: "."
unit: "$"

View File

@@ -0,0 +1,75 @@
---
vi:
binance_items:
create:
default_name: Binance
success: Đã kết nối thành công với Binance! Tài khoản của bạn đang được đồng bộ.
update:
success: Đã cập nhật cấu hình Binance thành công.
destroy:
success: Đã lên lịch xóa kết nối Binance.
setup_accounts:
title: Nhập tài khoản Binance
subtitle: Chọn danh mục đầu tư muốn theo dõi
instructions: Chọn các danh mục đầu tư Binance bạn muốn nhập. Chỉ hiển thị các danh mục có số dư.
no_accounts: Tất cả tài khoản đã được nhập.
accounts_count:
one: "%{count} tài khoản có sẵn"
other: "%{count} tài khoản có sẵn"
select_all: Chọn tất cả
import_selected: Nhập đã chọn
cancel: Hủy
creating: Đang nhập...
complete_account_setup:
success:
one: "Đã nhập %{count} tài khoản"
other: "Đã nhập %{count} tài khoản"
none_selected: Chưa chọn tài khoản nào
no_accounts: Không có tài khoản nào để nhập
binance_item:
provider_name: Binance
syncing: Đang đồng bộ...
reconnect: Thông tin xác thực cần cập nhật
deletion_in_progress: Đang xóa...
sync_status:
no_accounts: Không tìm thấy tài khoản
all_synced:
one: "%{count} tài khoản đã đồng bộ"
other: "%{count} tài khoản đã đồng bộ"
partial_sync: "%{linked_count} đã đồng bộ, %{unlinked_count} cần thiết lập"
status: "Đồng bộ lần cuối %{timestamp} trước"
status_with_summary: "Đồng bộ lần cuối %{timestamp} trước - %{summary}"
status_never: Chưa bao giờ đồng bộ
update_credentials: Cập nhật thông tin xác thực
delete: Xóa
no_accounts_title: Không tìm thấy tài khoản
no_accounts_message: Danh mục đầu tư Binance của bạn sẽ xuất hiện ở đây sau khi đồng bộ.
setup_needed: Tài khoản sẵn sàng để nhập
setup_description: Chọn danh mục đầu tư Binance bạn muốn theo dõi.
setup_action: Nhập tài khoản
import_accounts_menu: Nhập tài khoản
stale_rate_warning: "Số dư là xấp xỉ — tỷ giá hối đoái chính xác cho ngày %{date} không có sẵn. Sẽ cập nhật lần đồng bộ tiếp theo."
select_existing_account:
title: Liên kết tài khoản Binance
no_accounts_found: Không tìm thấy tài khoản Binance nào.
wait_for_sync: Chờ Binance hoàn tất đồng bộ
check_provider_health: Kiểm tra xem thông tin API Binance của bạn có hợp lệ không
currently_linked_to: "Hiện đang liên kết với: %{account_name}"
link: Liên kết
cancel: Hủy
link_existing_account:
success: Đã liên kết thành công với tài khoản Binance
errors:
only_manual: Chỉ tài khoản thủ công mới có thể liên kết với Binance
invalid_binance_account: Tài khoản Binance không hợp lệ
binance_item:
syncer:
checking_credentials: Đang kiểm tra thông tin xác thực...
credentials_invalid: Thông tin API không hợp lệ. Vui lòng kiểm tra khóa API và bí mật của bạn.
importing_accounts: Đang nhập tài khoản từ Binance...
checking_configuration: Đang kiểm tra cấu hình tài khoản...
accounts_need_setup:
one: "%{count} tài khoản cần thiết lập"
other: "%{count} tài khoản cần thiết lập"
processing_accounts: Đang xử lý dữ liệu tài khoản...
calculating_balances: Đang tính toán số dư...

View File

@@ -0,0 +1,277 @@
---
vi:
brex_items:
default_connection_name: Kết nối Brex
account_metadata:
provider: Brex
separator: " • "
kinds:
cash: Tiền mặt
card: Thẻ
statuses:
ACTIVE: Hoạt động
active: Hoạt động
CLOSED: Đã đóng
closed: Đã đóng
frozen: Bị đóng băng
FROZEN: Bị đóng băng
create:
success: Kết nối Brex đã được tạo thành công
default_card_name: Thẻ Brex
default_cash_name: "Tiền mặt Brex %{id}"
destroy:
success: Kết nối Brex đã được xóa
index:
title: Kết nối Brex
institution_summary:
none: Chưa kết nối tổ chức nào
one: "%{name}"
count:
one: "%{count} tổ chức"
other: "%{count} tổ chức"
sync_status:
no_accounts: Không tìm thấy tài khoản
all_synced:
one: "%{count} tài khoản đã đồng bộ"
other: "%{count} tài khoản đã đồng bộ"
partial_setup: "%{synced} đã đồng bộ, %{pending} cần thiết lập"
api_error:
common_issues: "Các vấn đề thường gặp:"
expired_credentials: Tạo mã thông báo API mới từ Brex.
expired_credentials_label: "Thông tin xác thực hết hạn:"
heading: Không thể kết nối với Brex
invalid_token: Kiểm tra mã thông báo API của bạn trong Cài đặt nhà cung cấp.
invalid_token_label: "Mã thông báo API không hợp lệ:"
network: Kiểm tra kết nối internet của bạn.
network_label: "Sự cố mạng:"
permissions: Đảm bảo mã thông báo có quyền đọc tài khoản và giao dịch cần thiết.
permissions_label: "Quyền không đủ:"
service: API Brex có thể tạm thời không khả dụng.
service_label: "Dịch vụ gián đoạn:"
settings_link: Kiểm tra Cài đặt nhà cung cấp
title: Lỗi kết nối Brex
errors:
unexpected_error: Đã xảy ra lỗi không mong muốn. Vui lòng thử lại sau.
entries:
default_name: Giao dịch Brex
loading:
loading_message: Đang tải tài khoản Brex...
loading_title: Đang tải
link_accounts:
all_already_linked:
one: "Tài khoản đã chọn (%{names}) đã được liên kết"
other: "Tất cả %{count} tài khoản đã chọn đã được liên kết: %{names}"
api_error: "Lỗi API: %{message}"
invalid_account_names:
one: "Không thể liên kết tài khoản không có tên"
other: "Không thể liên kết %{count} tài khoản không có tên"
invalid_account_type: Loại tài khoản Brex không được hỗ trợ
link_failed: Liên kết tài khoản thất bại
no_accounts_selected: Vui lòng chọn ít nhất một tài khoản
no_api_token: Không tìm thấy mã thông báo API Brex. Vui lòng cấu hình trong Cài đặt nhà cung cấp.
partial_invalid: "Đã liên kết thành công %{created_count} tài khoản, %{already_linked_count} tài khoản đã được liên kết, %{invalid_count} tài khoản có tên không hợp lệ"
partial_success: "Đã liên kết thành công %{created_count} tài khoản. %{already_linked_count} tài khoản đã được liên kết: %{already_linked_names}"
select_connection: Chọn kết nối Brex trước khi liên kết tài khoản.
success:
one: "Đã liên kết thành công %{count} tài khoản"
other: "Đã liên kết thành công %{count} tài khoản"
brex_item:
accounts_need_setup: Tài khoản cần thiết lập
delete: Xóa kết nối
deletion_in_progress: đang xóa...
error: Lỗi
no_accounts_description: Kết nối này chưa có tài khoản nào được liên kết.
no_accounts_title: Không có tài khoản
setup_action: Thiết lập tài khoản mới
setup_description: "%{linked} trong số %{total} tài khoản đã liên kết. Chọn loại tài khoản cho các tài khoản Brex mới được nhập."
setup_needed: Tài khoản mới sẵn sàng để thiết lập
status: "Đồng bộ %{timestamp} trước"
status_never: Chưa bao giờ đồng bộ
status_with_summary: "Đồng bộ lần cuối %{timestamp} trước - %{summary}"
syncing: Đang đồng bộ...
total: Tổng cộng
unlinked: Chưa liên kết
provider_panel:
accounts_link: Tài khoản
add_connection: Thêm kết nối Brex
base_url_label: URL cơ sở (tùy chọn)
base_url_placeholder: https://api.brex.com
configured_html: "Đã cấu hình và sẵn sàng sử dụng. Truy cập tab %{accounts_link} để quản lý và thiết lập tài khoản."
connection_name_label: Tên kết nối
connection_name_placeholder: Tài khoản kinh doanh
default_connection_name: Kết nối Brex
disconnect_label: "Ngắt kết nối %{name}"
disconnect_confirm: "Ngắt kết nối %{name}?"
encryption_warning:
title: Mã hóa cơ sở dữ liệu chưa được cấu hình
message: Cấu hình khóa mã hóa Active Record trước khi thêm mã thông báo Brex trong môi trường sản xuất. Không có khóa mã hóa, Sure lưu trữ thông tin xác thực nhà cung cấp Brex và ảnh chụp dưới dạng văn bản thuần túy như các bản ghi nhà cung cấp khác.
instructions:
copy_token_html: "Sao chép mã thông báo và thêm làm kết nối có tên bên dưới. Sure chỉ lưu mã thông báo để đồng bộ gia đình này."
create_token: "Tạo mã thông báo API với các phạm vi chỉ đọc sau: accounts.cash.readonly, accounts.card.readonly, transactions.cash.readonly, transactions.card.readonly"
open_tokens: Đi đến cài đặt nhà phát triển/mã thông báo API Brex cho công ty bạn muốn kết nối
sign_in_html: "Truy cập %{link} và đăng nhập vào tài khoản bạn muốn kết nối"
keep_token_placeholder: Để trống để giữ mã thông báo hiện tại
not_configured: Chưa được cấu hình
sandbox_note_html: "Sử dụng kết nối có tên riêng cho mỗi công ty Brex/mã thông báo API bạn muốn đồng bộ. Để trống URL cơ sở cho môi trường sản xuất. Môi trường staging chỉ dành cho kiểm thử được Brex phê duyệt và không hoạt động với mã thông báo khách hàng."
setup_accounts: Thiết lập tài khoản
setup_title: "Hướng dẫn thiết lập:"
sync: Đồng bộ
token_label: Mã thông báo
token_placeholder: Dán mã thông báo vào đây
update_connection: Cập nhật kết nối
provider_connection:
default_description: Kết nối với tài khoản Brex của bạn
default_name: Brex
description: "Kết nối bằng %{name}"
name: "Brex - %{name}"
select_accounts:
accounts_selected: tài khoản đã chọn
api_error: "Lỗi API: %{message}"
cancel: Hủy
configure_name_in_brex: Không thể nhập - vui lòng cấu hình tên tài khoản trong Brex
description: Chọn tài khoản bạn muốn liên kết với tài khoản %{product_name} của bạn.
link_accounts: Liên kết tài khoản đã chọn
no_accounts_found: Không tìm thấy tài khoản. Vui lòng kiểm tra cấu hình mã thông báo API.
no_api_token: Không tìm thấy mã thông báo API Brex. Vui lòng cấu hình trong Cài đặt nhà cung cấp.
no_credentials_configured: Vui lòng cấu hình mã thông báo API Brex trước trong Cài đặt nhà cung cấp.
no_name_placeholder: "(Không có tên)"
select_connection: Chọn kết nối Brex trong Cài đặt nhà cung cấp.
title: Chọn tài khoản Brex
unexpected_error: Đã xảy ra lỗi không mong muốn. Vui lòng thử lại sau.
select_existing_account:
account_already_linked: Tài khoản này đã được liên kết với nhà cung cấp
all_accounts_already_linked: Tất cả tài khoản Brex đã được liên kết
api_error: "Lỗi API: %{message}"
cancel: Hủy
configure_name_in_brex: Không thể nhập - vui lòng cấu hình tên tài khoản trong Brex
description: Chọn tài khoản Brex để liên kết với tài khoản này. Giao dịch sẽ được đồng bộ và loại bỏ trùng lặp tự động.
link_account: Liên kết tài khoản
no_account_specified: Chưa chỉ định tài khoản
no_accounts_found: Không tìm thấy tài khoản Brex. Vui lòng kiểm tra cấu hình mã thông báo API.
no_api_token: Không tìm thấy mã thông báo API Brex. Vui lòng cấu hình trong Cài đặt nhà cung cấp.
no_credentials_configured: Vui lòng cấu hình mã thông báo API Brex trước trong Cài đặt nhà cung cấp.
no_name_placeholder: "(Không có tên)"
select_connection: Chọn kết nối Brex trong Cài đặt nhà cung cấp.
title: "Liên kết %{account_name} với Brex"
unexpected_error: Đã xảy ra lỗi không mong muốn. Vui lòng thử lại sau.
setup_required:
description: Trước khi liên kết tài khoản Brex, bạn cần cấu hình mã thông báo API Brex.
heading: Mã thông báo API chưa được cấu hình
settings_link: Đi đến Cài đặt nhà cung cấp
setup_steps: "Các bước thiết lập:"
steps:
enter_token: Nhập mã thông báo API Brex của bạn
find_section_html: "Tìm phần <strong>Brex</strong>"
open_settings_html: "Đi đến <strong>Cài đặt > Nhà cung cấp</strong>"
return_to_link: Quay lại đây để liên kết tài khoản
title: Cần thiết lập Brex
subtype_select:
placeholder:
subtype: Chọn loại phụ
type: Chọn loại
link_existing_account:
account_already_linked: Tài khoản này đã được liên kết với nhà cung cấp
api_error: "Lỗi API: %{message}"
invalid_account_name: Không thể liên kết tài khoản không có tên
missing_parameters: Thiếu tham số bắt buộc
no_account_specified: Chưa chỉ định tài khoản
no_api_token: Không tìm thấy mã thông báo API Brex. Vui lòng cấu hình trong Cài đặt nhà cung cấp.
provider_account_already_linked: Tài khoản Brex này đã được liên kết với tài khoản khác
provider_account_not_found: Không tìm thấy tài khoản Brex
select_connection: Chọn kết nối Brex trước khi liên kết tài khoản.
success: "Đã liên kết thành công %{account_name} với Brex"
setup_accounts:
account_type_label: "Loại tài khoản:"
all_accounts_linked: "Tất cả tài khoản Brex của bạn đã được thiết lập."
api_error: "Lỗi API: %{message}"
fetch_failed: "Tải tài khoản thất bại"
no_accounts_to_setup: "Không có tài khoản nào để thiết lập"
no_api_token: Không tìm thấy mã thông báo API Brex. Vui lòng cấu hình trong Cài đặt nhà cung cấp.
account_types:
skip: Bỏ qua tài khoản này
depository: Tài khoản thanh toán hoặc tiết kiệm
credit_card: Thẻ tín dụng
investment: Tài khoản đầu tư
loan: Vay hoặc thế chấp
other_asset: Tài sản khác
subtype_labels:
depository: "Loại phụ tài khoản:"
credit_card: ""
investment: "Loại đầu tư:"
loan: "Loại vay:"
other_asset: ""
subtype_messages:
credit_card: "Thẻ tín dụng sẽ được tự động thiết lập dưới dạng tài khoản thẻ tín dụng."
other_asset: "Không cần tùy chọn bổ sung cho Tài sản khác."
subtypes:
depository:
checking: Tài khoản thanh toán
savings: Tài khoản tiết kiệm
hsa: Tài khoản tiết kiệm y tế
cd: Chứng chỉ tiền gửi
money_market: Thị trường tiền tệ
investment:
brokerage: Brokerage
pension: Lương hưu
retirement: Hưu trí
"401k": "401(k)"
roth_401k: "Roth 401(k)"
"403b": "403(b)"
tsp: Thrift Savings Plan
"529_plan": "529 Plan"
hsa: Tài khoản tiết kiệm y tế
mutual_fund: Quỹ tương hỗ
ira: Traditional IRA
roth_ira: Roth IRA
angel: Angel
loan:
mortgage: Thế chấp
student: Vay sinh viên
auto: Vay mua xe
other: Vay khác
balance: Số dư
cancel: Hủy
choose_account_type: "Chọn đúng loại tài khoản cho mỗi tài khoản Brex:"
create_accounts: Tạo tài khoản
creating_accounts: Đang tạo tài khoản...
historical_data_range: "Phạm vi dữ liệu lịch sử:"
subtitle: Chọn đúng loại tài khoản cho các tài khoản đã nhập
sync_start_date_help: Chọn khoảng thời gian lịch sử giao dịch bạn muốn đồng bộ. Tối đa 3 năm lịch sử có sẵn.
sync_start_date_label: "Bắt đầu đồng bộ giao dịch từ:"
title: Thiết lập tài khoản Brex của bạn
complete_account_setup:
all_skipped: "Tất cả tài khoản đã bị bỏ qua. Không có tài khoản nào được tạo."
creation_failed: "Tạo tài khoản thất bại: %{error}"
creation_failed_count: "Tạo %{count} tài khoản thất bại."
no_accounts: "Không có tài khoản nào để thiết lập."
partial_skipped: "Đã tạo thành công %{created_count} tài khoản; %{skipped_count} tài khoản đã bị bỏ qua."
partial_success: "Đã tạo thành công %{created_count} tài khoản, nhưng %{failed_count} tài khoản thất bại."
success: "Đã tạo thành công %{count} tài khoản."
unexpected_error: Đã xảy ra lỗi không mong muốn.
sync:
success: Đã bắt đầu đồng bộ
syncer:
account_processing_failed:
one: "%{count} tài khoản Brex gặp lỗi khi xử lý."
other: "%{count} tài khoản Brex gặp lỗi khi xử lý."
account_sync_failed:
one: "%{count} đồng bộ tài khoản Brex không thể được lên lịch."
other: "%{count} đồng bộ tài khoản Brex không thể được lên lịch."
accounts_need_setup:
one: "%{count} tài khoản cần thiết lập..."
other: "%{count} tài khoản cần thiết lập..."
accounts_failed:
one: "%{count} tài khoản Brex nhập thất bại."
other: "%{count} tài khoản Brex nhập thất bại."
calculating_balances: Đang tính toán số dư...
checking_account_configuration: Đang kiểm tra cấu hình tài khoản...
credentials_invalid: Mã thông báo API Brex hoặc quyền tài khoản không hợp lệ
failed: Đồng bộ thất bại. Vui lòng thử lại hoặc liên hệ hỗ trợ.
import_failed: Nhập Brex thất bại.
importing_accounts: Đang nhập tài khoản từ Brex...
processing_transactions: Đang xử lý giao dịch...
transactions_failed:
one: "%{count} tài khoản Brex gặp lỗi nhập giao dịch."
other: "%{count} tài khoản Brex gặp lỗi nhập giao dịch."
update:
success: Kết nối Brex đã được cập nhật

View File

@@ -0,0 +1,97 @@
---
vi:
budgets:
budget_donut:
spent: "Đã chi"
new_budget: "Ngân sách mới"
of_budget: "trong %{amount}"
unused: "Chưa dùng"
budget_header:
today: "Hôm nay"
budget_nav:
categories: Danh mục
setup: Thiết lập
over_allocation_warning:
over_allocated_message: "Bạn đã phân bổ vượt ngân sách. Vui lòng điều chỉnh lại."
fix_allocations: "Sửa phân bổ"
actuals_summary:
income: "Thu nhập"
expenses: "Chi tiêu"
budgeted_summary:
expected_income: "Thu nhập dự kiến"
budgeted: "Đã lập ngân sách"
earned: "%{amount} đã kiếm được"
over: "%{amount} vượt"
left: "%{amount} còn lại"
spent: "%{amount} đã chi"
edit:
setup_title: "Thiết lập ngân sách"
setup_description: "Nhập thu nhập hàng tháng và chi tiêu kế hoạch bên dưới để thiết lập ngân sách."
budgeted_spending: "Chi tiêu theo ngân sách"
expected_income: "Thu nhập dự kiến"
autosuggest_title: "Tự động đề xuất ngân sách thu nhập & chi tiêu"
autosuggest_description: "Dựa trên lịch sử giao dịch. AI có thể mắc lỗi, hãy xác minh trước khi tiếp tục."
continue: "Tiếp tục"
name:
custom_range: "%{start} - %{end_date}"
month_year: "%{month}"
show:
categories:
amount: Số tiền
edit: Chỉnh sửa
title: Danh mục
on_track_categories:
short_title: Đúng kế hoạch
title: Đúng kế hoạch
over_budget_categories:
short_title: Vượt ngân sách
title: Vượt ngân sách
filter:
all: Tất cả
on_track: Đúng kế hoạch
over_budget: Vượt ngân sách
tabs:
actual: Thực tế
budgeted: Ngân sách
copy_previous_prompt:
title: "Thiết lập ngân sách"
description: "Bạn có thể sao chép ngân sách từ %{source_name} hoặc bắt đầu mới."
copy_button: "Sao chép từ %{source_name}"
fresh_button: "Bắt đầu mới"
copy_previous:
success: "Đã sao chép ngân sách từ %{source_name}"
no_source: "Không tìm thấy ngân sách trước để sao chép"
already_initialized: "Ngân sách này đã được thiết lập"
budget_categories:
allocation_progress:
budget_exceeded_html: 'Vượt ngân sách <span class="text-red-500 privacy-sensitive">%{amount}</span>'
left_to_allocate: còn lại để phân bổ
over_set: "> 100% đã đặt"
percent_set: "%{percent} đã đặt"
budget_category_form:
monthly_average: "%{amount}/tháng tb"
shared_placeholder: Chia sẻ
shared_title: Để trống để dùng chung ngân sách của danh mục cha
confirm_button:
confirm: "Xác nhận"
no_categories:
oops: "Ối!"
no_categories_message: "Bạn chưa tạo hoặc gán danh mục chi tiêu nào cho giao dịch."
use_defaults: "Dùng mặc định (khuyến nghị)"
new_category: "Danh mục mới"
index:
title: "Chỉnh sửa ngân sách danh mục"
description: "Điều chỉnh ngân sách danh mục để đặt giới hạn chi tiêu. Số tiền chưa phân bổ sẽ tự động gán là chưa phân loại."
show:
category: "Danh mục"
overview: "Tổng quan"
spending: "Chi tiêu %{date}"
status: "Trạng thái"
overspent: "chi quá"
left: "còn lại"
budgeted: "Ngân sách"
monthly_average_spending: "Chi tiêu trung bình hàng tháng"
monthly_median_spending: "Chi tiêu trung vị hàng tháng"
recent_transactions: "Giao dịch gần đây"
view_all_transactions: "Xem tất cả giao dịch trong danh mục"
no_transactions: "Không tìm thấy giao dịch trong kỳ ngân sách này."

View File

@@ -0,0 +1,52 @@
---
vi:
categories:
bootstrap:
success: Đã tạo danh mục mặc định thành công
category:
delete: Xóa danh mục
edit: Chỉnh sửa danh mục
create:
success: Đã tạo danh mục thành công
destroy:
success: Đã xóa danh mục thành công
edit:
edit: Chỉnh sửa danh mục
form:
placeholder: Tên danh mục
name_label: Tên
unassigned: "(chưa gán)"
parent_category_label: "Danh mục cha (tùy chọn)"
color: Màu sắc
icon: Biểu tượng
auto_adjust: tự động điều chỉnh.
poor_contrast: "Độ tương phản kém, chọn màu tối hơn hoặc"
destroy_all:
success: Đã xóa tất cả danh mục
index:
bootstrap: Dùng mặc định (khuyến nghị)
categories: Danh mục
categories_expenses: Danh mục chi tiêu
categories_incomes: Danh mục thu nhập
delete_all: Xóa tất cả
empty: Không tìm thấy danh mục
new: Danh mục mới
menu:
loading: Đang tải...
new:
new_category: Danh mục mới
update:
success: Đã cập nhật danh mục thành công
virtual:
transfer: Chuyển khoản
payment: Thanh toán
trade: Giao dịch chứng khoán
category:
dropdowns:
show:
bootstrap: Tạo danh mục mặc định
empty: Không tìm thấy danh mục
match_transfer: "Khớp chuyển khoản/thanh toán"
one_time: "Một lần %{type}"
income: "thu nhập"
expense: "chi tiêu"

View File

@@ -0,0 +1,13 @@
---
vi:
category:
deletions:
create:
success: Danh mục giao dịch đã được xóa thành công
new:
category: Danh mục
delete_and_leave_uncategorized: Xóa "%{category_name}" và để chưa phân loại
delete_and_recategorize: Xóa "%{category_name}" và gán danh mục mới
delete_category: Xóa danh mục?
explanation: Bằng cách xóa danh mục này, mọi giao dịch có danh mục "%{category_name}" sẽ trở thành chưa phân loại. Thay vì để chúng không được phân loại, bạn cũng có thể gán một danh mục mới bên dưới.
replacement_category_prompt: Chọn danh mục

View File

@@ -0,0 +1,11 @@
---
vi:
category:
dropdowns:
row:
delete: Xóa danh mục
edit: Chỉnh sửa danh mục
show:
clear: Xóa danh mục
no_categories: Không tìm thấy danh mục nào
search_placeholder: Tìm kiếm

View File

@@ -0,0 +1,44 @@
---
vi:
chats:
demo_banner_title: "Chế độ Demo đang hoạt động"
demo_banner_message: "Bạn đang sử dụng LLM thông qua tín dụng do Cloudflare Workers AI cung cấp. Kết quả có thể thay đổi vì codebase được thử nghiệm trên `gpt-4.1` nhưng token của bạn không được sử dụng để đào tạo mô hình! 🤖"
thinking: "Đang xử lý ..."
ai_greeting:
greeting: "Xin chào %{name}! Tôi là một AI/mô hình ngôn ngữ lớn có thể hỗ trợ bạn về tài chính. Tôi có quyền truy cập internet và dữ liệu tài khoản của bạn."
there: "bạn"
commands_hint_html: "Bạn có thể sử dụng <span class=\"bg-container border border-secondary px-1.5 py-0.5 rounded font-mono text-xs\">/</span> để truy cập các lệnh"
questions_intro: "Dưới đây là một số câu hỏi bạn có thể đặt:"
evaluate_portfolio: "Đánh giá danh mục đầu tư"
spending_insights: "Xem thông tin chi tiêu"
unusual_patterns: "Tìm các giao dịch bất thường"
chat:
edit_chat_title: "Chỉnh sửa tiêu đề cuộc trò chuyện"
delete_chat: "Xóa cuộc trò chuyện"
chat_nav:
all_chats: "Tất cả cuộc trò chuyện"
start_new_chat: "Bắt đầu cuộc trò chuyện mới"
edit_chat_title: "Chỉnh sửa tiêu đề cuộc trò chuyện"
delete_chat: "Xóa cuộc trò chuyện"
error:
retry: "Thử lại"
destroy:
notice: "Cuộc trò chuyện đã được xóa thành công"
index:
chats: "Cuộc trò chuyện"
new_chat: "Cuộc trò chuyện mới"
update:
success: "Cuộc trò chuyện đã được cập nhật"
ai_consent:
title: "Bật tính năng Trò chuyện AI"
available_description: "Trò chuyện AI có thể trả lời các câu hỏi tài chính và cung cấp thông tin dựa trên dữ liệu của bạn. Để sử dụng tính năng này, bạn cần bật nó một cách rõ ràng."
unavailable_description_html: "Để sử dụng trợ lý AI, bạn cần đặt biến môi trường <code class=\"bg-surface-inset px-1 py-0.5 rounded font-mono text-xs\">OPENAI_ACCESS_TOKEN</code> hoặc cấu hình nó trong phần Cài đặt Self-Hosting của phiên bản của bạn."
enable_button: "Bật Trò chuyện AI"
disable_note: "Tắt bất kỳ lúc nào. Tất cả dữ liệu gửi đến các nhà cung cấp LLM của chúng tôi đều được ẩn danh hóa."
assistant_messages:
assistant_message:
assistant_reasoning: "Lý luận của trợ lý"
tool_calls:
tool_calls: "Lệnh gọi công cụ"
function: "Hàm:"
arguments: "Đối số:"

View File

@@ -0,0 +1,78 @@
---
vi:
coinbase_items:
create:
default_name: Coinbase
success: Đã kết nối thành công với Coinbase! Các tài khoản của bạn đang được đồng bộ.
update:
success: Đã cập nhật cấu hình Coinbase thành công.
destroy:
success: Đã lên lịch xóa kết nối Coinbase.
setup_accounts:
title: Nhập ví Coinbase
subtitle: Chọn ví muốn theo dõi
instructions: Chọn các ví bạn muốn nhập. Các ví chưa chọn vẫn có sẵn nếu bạn muốn thêm sau.
no_accounts: Tất cả ví đã được nhập.
accounts_count:
one: "%{count} ví có sẵn"
other: "%{count} ví có sẵn"
select_all: Chọn tất cả
import_selected: Nhập đã chọn
cancel: Hủy
creating: Đang nhập...
complete_account_setup:
success:
one: "Đã nhập %{count} ví"
other: "Đã nhập %{count} ví"
none_selected: Chưa chọn ví nào
no_accounts: Không có ví nào để nhập
coinbase_item:
provider_name: Coinbase
syncing: Đang đồng bộ...
reconnect: Thông tin xác thực cần cập nhật
deletion_in_progress: Đang xóa...
sync_status:
no_accounts: Không tìm thấy tài khoản
all_synced:
one: "%{count} tài khoản đã đồng bộ"
other: "%{count} tài khoản đã đồng bộ"
partial_sync: "%{linked_count} đã đồng bộ, %{unlinked_count} cần thiết lập"
status: "Đồng bộ lần cuối %{timestamp} trước"
status_with_summary: "Đồng bộ lần cuối %{timestamp} trước - %{summary}"
status_never: Chưa bao giờ đồng bộ
update_credentials: Cập nhật thông tin xác thực
delete: Xóa
no_accounts_title: Không tìm thấy tài khoản
no_accounts_message: Các ví Coinbase của bạn sẽ xuất hiện ở đây sau khi đồng bộ.
setup_needed: Ví sẵn sàng để nhập
setup_description: Chọn ví Coinbase bạn muốn theo dõi.
setup_action: Nhập ví
import_wallets_menu: Nhập ví
more_wallets_available:
one: "%{count} ví khác có sẵn để nhập"
other: "%{count} ví khác có sẵn để nhập"
select_existing_account:
title: Liên kết tài khoản Coinbase
no_accounts_found: Không tìm thấy tài khoản Coinbase nào.
wait_for_sync: Chờ Coinbase hoàn tất đồng bộ
check_provider_health: Kiểm tra xem thông tin API Coinbase của bạn có hợp lệ không
balance: Số dư
currently_linked_to: "Hiện đang liên kết với: %{account_name}"
link: Liên kết
cancel: Hủy
link_existing_account:
success: Đã liên kết thành công với tài khoản Coinbase
errors:
only_manual: Chỉ tài khoản thủ công mới có thể liên kết với Coinbase
invalid_coinbase_account: Tài khoản Coinbase không hợp lệ
coinbase_item:
syncer:
checking_credentials: Đang kiểm tra thông tin xác thực...
credentials_invalid: Thông tin API không hợp lệ. Vui lòng kiểm tra khóa API và bí mật của bạn.
importing_accounts: Đang nhập tài khoản từ Coinbase...
checking_configuration: Đang kiểm tra cấu hình tài khoản...
accounts_need_setup:
one: "%{count} tài khoản cần thiết lập"
other: "%{count} tài khoản cần thiết lập"
processing_accounts: Đang xử lý dữ liệu tài khoản...
calculating_balances: Đang tính toán số dư...

View File

@@ -0,0 +1,75 @@
---
vi:
coinstats_items:
create:
success: Kết nối nhà cung cấp CoinStats đã được cấu hình thành công.
default_name: Kết nối CoinStats
errors:
validation_failed: "Xác thực thất bại: %{message}."
update:
success: Kết nối nhà cung cấp CoinStats đã được cập nhật thành công.
errors:
validation_failed: "Xác thực thất bại: %{message}."
destroy:
success: Kết nối nhà cung cấp CoinStats đã được lên lịch xóa.
link_wallet:
success: "%{count} ví tiền điện tử đã được liên kết thành công."
missing_params: "Thiếu tham số bắt buộc: địa chỉ và blockchain."
failed: Liên kết ví tiền điện tử thất bại.
error: "Liên kết ví tiền điện tử thất bại: %{message}."
link_exchange:
success: "%{name} sàn giao dịch đã được liên kết."
missing_params: Sàn giao dịch và thông tin xác thực là bắt buộc.
invalid_exchange: Sàn giao dịch đã chọn không còn được hỗ trợ.
failed: Liên kết sàn giao dịch thất bại.
error: "Liên kết sàn giao dịch thất bại: %{message}."
new:
title: Liên kết tiền điện tử với CoinStats
blockchain_fetch_error: Tải blockchain thất bại. Vui lòng thử lại sau.
link_wallet_title: Liên kết địa chỉ ví
link_wallet_description: Theo dõi ví tự quản hoặc địa chỉ on-chain đơn lẻ qua CoinStats.
address_label: Địa chỉ
address_placeholder: Bắt buộc
blockchain_label: Blockchain
blockchain_placeholder: Bắt buộc
blockchain_select_blank: Chọn một Blockchain
link_wallet_submit: Liên kết ví tiền điện tử
link_exchange_title: Liên kết API sàn giao dịch
link_exchange_description: Sử dụng khóa API chỉ đọc của sàn giao dịch để CoinStats có thể đồng bộ số dư và giao dịch từ Bitvavo, Binance và các sàn được hỗ trợ khác.
link_exchange_note: Nếu sàn giao dịch của bạn yêu cầu kích hoạt khóa API hoặc xác nhận qua email, hãy hoàn tất bước đó trước khi liên kết ở đây.
exchange_select_blank: Chọn một sàn giao dịch
exchange_label: Sàn giao dịch
link_exchange_submit: Liên kết sàn giao dịch
not_configured_title: Kết nối nhà cung cấp CoinStats chưa được cấu hình
not_configured_message: Để liên kết ví tiền điện tử hoặc sàn giao dịch, bạn phải cấu hình kết nối nhà cung cấp CoinStats trước.
not_configured_step1_html: Đi đến <strong>Cài đặt → Nhà cung cấp</strong>
not_configured_step2_html: Tìm nhà cung cấp <strong>CoinStats</strong>
not_configured_step3_html: Làm theo <strong>hướng dẫn thiết lập</strong> được cung cấp để hoàn tất cấu hình nhà cung cấp
go_to_settings: Đi đến Cài đặt nhà cung cấp
setup_instructions: "Hướng dẫn thiết lập:"
step1_html: Truy cập <a href="https://openapi.coinstats.app/" class="link" target="_blank" rel="noopener noreferrer">CoinStats Public API Dashboard</a> để lấy khóa API.
step2: Nhập khóa API của bạn bên dưới và nhấn Cấu hình.
step3_html: Sau khi kết nối thành công, truy cập tab <a href="%{accounts_url}" class="link" data-turbo-frame="_top">Tài khoản</a> để thiết lập tài khoản tiền điện tử.
api_key_label: Khóa API
api_key_placeholder: Bắt buộc
configure: Cấu hình
update_configuration: Cấu hình lại
default_name: Kết nối CoinStats
coinstats_item:
deletion_in_progress: Dữ liệu ví tiền điện tử đang được xóa…
provider_name: CoinStats
syncing: Đang đồng bộ…
sync_status:
no_accounts: Không tìm thấy ví tiền điện tử
all_synced:
one: "%{count} ví tiền điện tử đã đồng bộ"
other: "%{count} ví tiền điện tử đã đồng bộ"
partial_sync: "%{linked_count} ví tiền điện tử đã đồng bộ, %{unlinked_count} cần thiết lập"
reconnect: Kết nối lại
status: Đồng bộ lần cuối %{timestamp} trước
status_never: Chưa bao giờ đồng bộ
status_with_summary: "Đồng bộ lần cuối %{timestamp} trước • %{summary}"
update_api_key: Cập nhật khóa API
delete: Xóa
no_wallets_title: Không có ví tiền điện tử nào được kết nối
no_wallets_message: Hiện không có ví tiền điện tử nào được kết nối với CoinStats.

View File

@@ -0,0 +1,162 @@
---
vi:
UI:
account:
activity_feed:
toggle_selection_checkboxes: Bật/tắt chọn
balance_reconciliation:
labels:
adjustments: Điều chỉnh
buys: Mua vào
change_in_brokerage_cash: Thay đổi tiền mặt môi giới
change_in_holdings_market: Thay đổi danh mục (giá thị trường)
change_in_holdings_trades: Thay đổi danh mục (mua/bán)
charges: Phí phát sinh
end_balance: Số dư cuối
end_principal: Gốc cuối
end_value: Giá trị cuối
final_balance: Số dư cuối cùng
final_principal: Gốc cuối cùng
final_value: Giá trị cuối cùng
market_changes: Biến động thị trường
net_cash_flow: Dòng tiền thuần
net_principal_change: Thay đổi gốc thuần
net_value_change: Thay đổi giá trị thuần
payments: Thanh toán
sells: Bán ra
start_balance: Số dư đầu
start_principal: Gốc đầu
start_value: Giá trị đầu
tooltips:
adjustments: Điều chỉnh thủ công hoặc điều chỉnh khác
adjustments_asset: Điều chỉnh giá trị thủ công hoặc thẩm định
buys: Mua tiền mã hóa trong ngày
change_in_brokerage_cash: Thay đổi tiền mặt thuần từ nạp/rút và giao dịch
change_in_holdings_market: Thay đổi giá trị danh mục do biến động giá thị trường
change_in_holdings_trades: Tác động đến danh mục từ mua bán chứng khoán
charges: Phí phát sinh mới trong ngày
end_balance: Số dư tính toán sau tất cả giao dịch
end_balance_investment: Số dư tính toán sau tất cả hoạt động
end_principal: Gốc tính toán sau tất cả giao dịch
end_value: Giá trị tính toán sau tất cả thay đổi
final_balance: Số dư tài khoản cuối cùng trong ngày
final_balance_credit: Số dư nợ cuối cùng trong ngày
final_balance_crypto: Giá trị danh mục tiền mã hóa cuối cùng trong ngày
final_balance_investment: Giá trị danh mục đầu tư cuối cùng trong ngày
final_principal: Số dư gốc cuối cùng trong ngày
final_value: Giá trị tài sản cuối cùng trong ngày
market_changes: Thay đổi giá trị do biến động giá thị trường
net_cash_flow: Thay đổi số dư thuần từ tất cả giao dịch trong ngày
net_principal_change: Thanh toán gốc và khoản vay mới trong ngày
net_value_change: Tất cả thay đổi giá trị bao gồm cải thiện và khấu hao
payments: Thanh toán thẻ trong ngày
sells: Bán tiền mã hóa trong ngày
start_balance: Số dư tài khoản đầu ngày
start_balance_credit: Số dư nợ đầu ngày
start_balance_crypto: Giá trị danh mục tiền mã hóa đầu ngày
start_balance_investment: Tổng giá trị danh mục đầu tư đầu ngày
start_principal: Số dư gốc đầu ngày
start_value: Giá trị tài sản đầu ngày
chart:
no_data_available: "Không có dữ liệu"
title:
balance: Số dư
cash_value: Giá trị tiền mặt
debt_balance: Số dư nợ
estimated_property_value: Giá trị bất động sản ước tính
estimated_vehicle_value: Giá trị phương tiện ước tính
holdings_value: Giá trị danh mục
remaining_principal_balance: Số dư gốc còn lại
total_account_value: Tổng giá trị tài khoản
views:
cash: Tiền mặt
holdings: Danh mục
total_value: Tổng giá trị
vs_available_history: so với lịch sử hiện có
activity_date:
balance_tooltip: "Số dư cuối ngày, sau tất cả giao dịch và điều chỉnh"
no_balance_data: "Không có dữ liệu số dư cho ngày này"
ds:
alert:
variants:
info: Thông tin
success: Thành công
warning: Cảnh báo
error: Lỗi
destructive: Lỗi
pill:
aria_label: "%{label}"
default_label: Xem trước
dialog:
close: Đóng
popover:
avatar_default_label: Mở menu
tooltip:
trigger_label: Thêm thông tin
link:
opens_in_new_tab: (mở trong tab mới)
provider_sync_summary:
title: Tóm tắt đồng bộ
last_sync: "Đồng bộ lần cuối: %{time_ago} trước"
accounts:
title: Tài khoản
total: "Tổng: %{count}"
linked: "Đã liên kết: %{count}"
unlinked: "Chưa liên kết: %{count}"
institutions: "Tổ chức: %{count}"
transactions:
title: Giao dịch
seen: "Đã thấy: %{count}"
imported: "Đã nhập: %{count}"
updated: "Đã cập nhật: %{count}"
skipped: "Đã bỏ qua: %{count}"
fetching: "Đang tải từ sàn giao dịch..."
protected:
one: "%{count} mục được bảo vệ (không ghi đè)"
other: "%{count} mục được bảo vệ (không ghi đè)"
view_protected: Xem các mục được bảo vệ
skip_reasons:
excluded: Đã loại trừ
user_modified: Người dùng đã sửa
import_locked: Nhập CSV
protected: Được bảo vệ
holdings:
title: Danh mục nắm giữ
found: "Tìm thấy: %{count}"
processed: "Đã xử lý: %{count}"
trades:
title: Giao dịch chứng khoán
imported: "Đã nhập: %{count}"
skipped: "Đã bỏ qua: %{count}"
fetching: "Đang tải hoạt động từ sàn giao dịch..."
health:
title: Tình trạng
view_error_details: Xem chi tiết lỗi
rate_limited: "Bị giới hạn tốc độ %{time_ago}"
recently: gần đây
errors: "Lỗi: %{count}"
pending_reconciled:
one: "%{count} giao dịch chờ trùng lặp đã được đối chiếu"
other: "%{count} giao dịch chờ trùng lặp đã được đối chiếu"
view_reconciled: Xem giao dịch đã đối chiếu
duplicate_suggestions:
one: "%{count} giao dịch có thể trùng lặp cần xem xét"
other: "%{count} giao dịch có thể trùng lặp cần xem xét"
view_duplicate_suggestions: Xem các giao dịch trùng lặp được đề xuất
stale_pending:
one: "%{count} giao dịch chờ cũ (không tính vào ngân sách)"
other: "%{count} giao dịch chờ cũ (không tính vào ngân sách)"
view_stale_pending: Xem các tài khoản bị ảnh hưởng
stale_pending_count:
one: "%{count} giao dịch"
other: "%{count} giao dịch"
stale_unmatched:
one: "%{count} giao dịch chờ cần xem xét thủ công"
other: "%{count} giao dịch chờ cần xem xét thủ công"
view_stale_unmatched: Xem giao dịch cần xem xét
stale_unmatched_count:
one: "%{count} giao dịch"
other: "%{count} giao dịch"
data_warnings: "Cảnh báo dữ liệu: %{count}"
notices: "Thông báo: %{count}"
view_data_quality: Xem chi tiết chất lượng dữ liệu

View File

@@ -0,0 +1,26 @@
---
vi:
credit_cards:
edit:
edit: Chỉnh sửa %{account}
form:
annual_fee: Phí thường niên
annual_fee_placeholder: '99'
apr: Lãi suất APR
apr_placeholder: '15.99'
available_credit: Hạn mức tín dụng còn lại
available_credit_placeholder: '10000'
expiration_date: Ngày hết hạn
minimum_payment: Thanh toán tối thiểu
minimum_payment_placeholder: '100'
new:
title: Nhập thông tin thẻ tín dụng
overview:
amount_owed: Số tiền nợ
annual_fee: Phí thường niên
apr: Lãi suất APR
available_credit: Hạn mức tín dụng còn lại
edit_account_details: Chỉnh sửa thông tin tài khoản
expiration_date: Ngày hết hạn
minimum_payment: Thanh toán tối thiểu
unknown: Không xác định

View File

@@ -0,0 +1,20 @@
---
vi:
cryptos:
edit:
edit: Chỉnh sửa %{account}
form:
subtype_label: Loại tài khoản
subtype_prompt: Chọn loại tài khoản
subtype_none: Không có
tax_treatment_label: Chế độ thuế
tax_treatment_hint: Hầu hết tiền mã hóa được nắm giữ trong các tài khoản chịu thuế. Chọn một tùy chọn khác nếu được nắm giữ trong tài khoản có lợi thế về thuế.
new:
title: Nhập số dư tài khoản
subtypes:
wallet:
short:
long: Ví tiền mã hóa
exchange:
short: Sàn giao dịch
long: Sàn giao dịch tiền mã hóa

View File

@@ -0,0 +1,26 @@
---
vi:
depositories:
edit:
edit: Chỉnh sửa %{account}
form:
none: Không có
subtype_prompt: Chọn loại tài khoản
new:
title: Nhập số dư tài khoản
subtypes:
cd:
long: Chứng chỉ tiền gửi
short: CD
checking:
long: Tài khoản thanh toán
short: Thanh toán
hsa:
long: Tài khoản tiết kiệm y tế
short: HSA
money_market:
long: Thị trường tiền tệ
short: MM
savings:
long: Tài khoản tiết kiệm
short: Tiết kiệm

View File

@@ -0,0 +1,9 @@
---
vi:
email_confirmation_mailer:
confirmation_email:
body: Bạn vừa yêu cầu thay đổi địa chỉ email. Nhấp vào nút bên dưới để xác nhận thay đổi này.
cta: Xác nhận thay đổi email
expiry_notice: Liên kết này sẽ hết hạn sau %{hours} giờ.
greeting: Xin chào!
subject: '%{product_name}: Xác nhận thay đổi email của bạn'

View File

@@ -0,0 +1,116 @@
---
vi:
enable_banking_items:
errors:
api_error: "Đã xảy ra lỗi giao tiếp với ngân hàng."
network_unreachable: "Dịch vụ ngân hàng tạm thời không khả dụng. Vui lòng thử lại sau."
session_invalid: "Phiên đã hết hạn. Vui lòng kết nối lại ngân hàng của bạn."
unexpected: "Đã xảy ra lỗi không mong muốn trong quá trình đồng bộ."
authorize:
authorization_failed: "Không thể khởi tạo ủy quyền: %{message}"
bank_required: Vui lòng chọn ngân hàng.
decoupled_not_supported: Ngân hàng này sử dụng phương thức xác thực thiết bị riêng biệt chưa được hỗ trợ. Vui lòng thêm tài khoản này thủ công.
invalid_redirect: URL ủy quyền nhận được không hợp lệ. Vui lòng thử lại.
redirect_uri_not_allowed: Chuyển hướng không được phép. Vui lòng cấu hình `%{callback_url}` trong cài đặt ứng dụng Enable Banking của bạn.
unexpected_error: Đã xảy ra lỗi không mong muốn. Vui lòng thử lại.
callback:
authorization_error: Ủy quyền thất bại
invalid_callback: Tham số callback không hợp lệ.
item_not_found: Không tìm thấy kết nối.
session_failed: Không thể hoàn tất ủy quyền
success: Đã kết nối thành công với ngân hàng của bạn. Các tài khoản đang được đồng bộ.
unexpected_error: Đã xảy ra lỗi không mong muốn. Vui lòng thử lại.
complete_account_setup:
all_skipped: Tất cả tài khoản đã bị bỏ qua. Bạn có thể thiết lập sau trên trang tài khoản.
no_accounts: Không có tài khoản nào để thiết lập.
success: Đã tạo thành công %{count} tài khoản!
create:
success: Cấu hình Enable Banking thành công.
destroy:
success: Kết nối Enable Banking đã được đưa vào hàng đợi xóa.
link_accounts:
already_linked: Các tài khoản đã chọn đã được liên kết.
link_failed: Liên kết tài khoản thất bại
no_accounts_selected: Chưa chọn tài khoản nào.
no_session: Không có kết nối Enable Banking nào đang hoạt động. Vui lòng kết nối với ngân hàng trước.
success: Đã liên kết thành công %{count} tài khoản.
link_existing_account:
success: Tài khoản đã được liên kết thành công với Enable Banking
errors:
only_manual: Chỉ tài khoản thủ công mới có thể được liên kết
invalid_enable_banking_account: Tài khoản Enable Banking được chọn không hợp lệ
enable_banking_item:
deletion_in_progress: Đang xóa
provider_name: Enable Banking
syncing: Đang đồng bộ...
reconnect: Kết nối lại
last_synced: Đồng bộ lần cuối %{time} trước
never_synced: Chưa bao giờ đồng bộ
update: Cập nhật
delete: Xóa
setup_needed: Cần thiết lập
setup_needed_description:
one: 1 tài khoản được nhập từ Enable Banking cần thiết lập
other: "%{count} tài khoản được nhập từ Enable Banking cần thiết lập"
set_up_accounts: Thiết lập tài khoản
no_accounts_found: Không tìm thấy tài khoản
no_accounts_found_description: Không tìm thấy tài khoản từ Enable Banking. Hãy thử đồng bộ lại.
select_existing_account:
title: Liên kết tài khoản Enable Banking
all_linked: Tất cả tài khoản Enable Banking có vẻ đã được liên kết.
try_after_sync: Nếu bạn vừa kết nối hoặc đồng bộ, hãy thử lại sau khi hoàn tất.
unlink_to_move: Để liên kết tài khoản khác, trước tiên hãy hủy liên kết từ menu thao tác của tài khoản.
balance: Số dư
link: Liên kết
cancel: Hủy
setup_accounts:
title: Thiết lập tài khoản Enable Banking của bạn
header_subtitle: Chọn đúng loại tài khoản cho các tài khoản đã nhập
choose_account_type: "Chọn đúng loại tài khoản cho mỗi tài khoản Enable Banking:"
historical_data_range: "Phạm vi dữ liệu lịch sử:"
sync_start_date_label: "Bắt đầu đồng bộ giao dịch từ:"
sync_start_date_help: Chọn khoảng thời gian lịch sử giao dịch bạn muốn đồng bộ. Tối đa 2 năm lịch sử có sẵn.
account_type_label: "Loại tài khoản:"
balance: Số dư
create_accounts: Tạo tài khoản
creating_accounts: Đang tạo tài khoản...
cancel: Hủy
new:
link_enable_banking_title: Liên kết Enable Banking
session_expired: Phiên hết hạn - cần ủy quyền lại
connected_bank: Ngân hàng đã kết nối
session_expires: "Phiên hết hạn"
unknown: Không rõ
connection: Kết nối
configured: Đã cấu hình
ready_to_connect: Sẵn sàng kết nối ngân hàng
sync: Đồng bộ
reconnect: Kết nối lại
connect_bank: Kết nối ngân hàng
remove_confirm: Bạn có chắc chắn muốn xóa kết nối này không?
remove: Xóa
add_connection: Thêm kết nối
not_configured: Kết nối Enable Banking chưa được cấu hình
not_configured_description: Trước khi liên kết tài khoản Enable Banking, bạn cần cấu hình kết nối Enable Banking.
setup_steps_title: "Các bước thiết lập:"
setup_step_1_html: "Đi đến <strong>Cài đặt → Nhà cung cấp</strong>"
setup_step_2_html: "Tìm phần <strong>Enable Banking</strong>"
setup_step_3: Nhập thông tin xác thực Enable Banking của bạn
setup_step_4: Quay lại đây để liên kết tài khoản
go_to_provider_settings: Đi đến Cài đặt nhà cung cấp
reauthorize:
invalid_redirect: URL ủy quyền nhận được không hợp lệ. Vui lòng thử lại.
reauthorization_failed: Ủy quyền lại thất bại
select_bank:
beta_label: Beta
cancel: Hủy
check_country: Vui lòng kiểm tra cài đặt mã quốc gia của bạn.
credentials_required: Vui lòng cấu hình thông tin xác thực Enable Banking trước.
description: Chọn ngân hàng bạn muốn kết nối với tài khoản của mình.
no_banks: Không có ngân hàng nào cho quốc gia/khu vực này.
no_search_results: Không có ngân hàng nào khớp với tìm kiếm của bạn.
search_label: Tìm kiếm ngân hàng của bạn
search_placeholder: Tìm kiếm ngân hàng của bạn...
title: Chọn ngân hàng của bạn
update:
success: Đã cập nhật cấu hình Enable Banking.

View File

@@ -0,0 +1,23 @@
---
vi:
entries:
create:
success: Đã tạo mục nhập
destroy:
success: Đã xóa mục nhập
empty:
description: Thử thêm mục nhập, chỉnh bộ lọc hoặc tinh chỉnh tìm kiếm
title: Không tìm thấy mục nhập
loading:
loading: Đang tải mục nhập...
update:
success: Đã cập nhật mục nhập
unlock:
success: Đã mở khóa mục nhập. Có thể được cập nhật lần đồng bộ tiếp theo.
protection:
tooltip: Được bảo vệ khỏi đồng bộ
title: Được bảo vệ khỏi đồng bộ
description: Các chỉnh sửa của bạn với mục nhập này sẽ không bị ghi đè khi đồng bộ từ nhà cung cấp.
locked_fields_label: "Các trường bị khóa:"
unlock_button: Cho phép đồng bộ cập nhật
unlock_confirm: Cho phép đồng bộ cập nhật mục nhập này? Các thay đổi của bạn có thể bị ghi đè lần đồng bộ tiếp theo.

View File

@@ -0,0 +1,43 @@
---
vi:
family_exports:
access_denied: Truy cập bị từ chối
create:
success: Xuất dữ liệu đã bắt đầu. Bạn sẽ có thể tải xuống trong thời gian ngắn.
delete_confirmation: Bạn có chắc chắn muốn xóa bản xuất này không? Hành động này không thể hoàn tác.
delete_failed_confirmation: Bạn có chắc chắn muốn xóa bản xuất thất bại này không?
destroy:
success: Bản xuất đã được xóa thành công
export_not_ready: Bản xuất chưa sẵn sàng để tải xuống
exporting: Đang xuất dữ liệu...
new:
dialog_title: Xuất dữ liệu của bạn
dialog_subtitle: Tải xuống tất cả dữ liệu tài chính của bạn
whats_included: "Bao gồm:"
accounts_and_balances: Tất cả tài khoản và số dư
transaction_history: Lịch sử giao dịch
investment_trades: Giao dịch đầu tư
categories_tags_rules: Danh mục, nhãn và quy tắc
note_label: Lưu ý
note_description: Bản xuất này bao gồm tất cả dữ liệu của bạn, nhưng chỉ một phần dữ liệu có thể được nhập lại thông qua tính năng nhập CSV. Chúng tôi hỗ trợ nhập tài khoản, giao dịch (với danh mục và nhãn) và giao dịch mua bán. Dữ liệu tài khoản khác không thể nhập và chỉ dùng để lưu trữ hồ sơ của bạn.
cancel: Hủy
export_data: Xuất dữ liệu
index:
title: Xuất dữ liệu
new: Xuất mới
table:
title: Xuất dữ liệu
header:
date: Ngày
filename: Tên tệp
status: Trạng thái
actions: Hành động
row:
status:
in_progress: Đang xử lý
complete: Hoàn tất
failed: Thất bại
actions:
delete: Xóa
download: Tải xuống
empty: Chưa có bản xuất nào.

View File

@@ -0,0 +1,101 @@
---
vi:
holdings:
cash:
brokerage_cash: Tiền mặt môi giới
destroy:
success: Đã xóa danh mục nắm giữ
cannot_delete: Bạn không thể xóa danh mục nắm giữ này
update:
success: Đã lưu giá vốn.
error: Giá trị giá vốn không hợp lệ.
unlock_cost_basis:
success: Đã mở khóa giá vốn. Có thể được cập nhật lần đồng bộ tiếp theo.
remap_security:
success: Đã cập nhật chứng khoán thành công.
security_not_found: Không tìm thấy chứng khoán đã chọn.
reset_security:
success: Chứng khoán đã được đặt lại về giá trị từ nhà cung cấp.
sync_prices:
success: Đã đồng bộ dữ liệu thị trường thành công.
unavailable: Đồng bộ dữ liệu thị trường không khả dụng cho chứng khoán ngoại tuyến.
provider_error: Không thể tải giá mới nhất. Vui lòng thử lại sau vài phút.
errors:
security_collision: "Không thể ánh xạ lại: bạn đã có danh mục nắm giữ cho %{ticker} vào ngày %{date}."
cost_basis_sources:
manual: Người dùng đặt
calculated: Từ giao dịch
provider: Từ nhà cung cấp
cost_basis_cell:
unknown: "--"
set: Đặt
set_cost_basis_header: "Đặt giá vốn cho %{ticker} (%{qty} cổ phiếu)"
total_cost_basis_label: Tổng giá vốn
or_per_share_label: "Hoặc nhập mỗi cổ phiếu:"
per_share: mỗi cổ phiếu
cancel: Hủy
save: Lưu
overwrite_confirm_title: Ghi đè giá vốn?
overwrite_confirm_body: "Thao tác này sẽ thay thế giá vốn hiện tại là %{current}."
holding:
per_share: mỗi cổ phiếu
shares: "%{qty} cổ phiếu"
unknown: "--"
no_cost_basis: Không có giá vốn
index:
average_cost: Giá trung bình
holdings: Danh mục nắm giữ
name: Tên
new_holding: Hoạt động mới
no_holdings: Không có danh mục nắm giữ.
return: Tổng lợi nhuận
weight: Tỷ trọng
missing_price_tooltip:
description: Khoản đầu tư này có giá trị bị thiếu và chúng tôi không thể tính lợi nhuận hoặc giá trị.
missing_data: Thiếu dữ liệu
show:
avg_cost_label: Giá trung bình
current_market_price_label: Giá thị trường hiện tại
delete: Xóa
delete_subtitle: Thao tác này sẽ xóa danh mục nắm giữ và tất cả giao dịch liên quan trong tài khoản này. Không thể hoàn tác.
delete_title: Xóa danh mục nắm giữ
edit_security: Chỉnh sửa chứng khoán
history: Lịch sử
no_trade_history: Không có lịch sử giao dịch cho danh mục nắm giữ này.
overview: Tổng quan
portfolio_weight_label: Tỷ trọng danh mục
settings: Cài đặt
security_label: Chứng khoán
originally: "là %{ticker}"
search_security: Tìm kiếm chứng khoán
search_security_placeholder: Tìm theo mã ticker hoặc tên
cancel: Hủy
remap_security: Lưu
provider_disabled_warning: "Cập nhật giá tạm dừng — nhà cung cấp %{provider} đã bị tắt. Chuyển sang nhà cung cấp khác bên dưới hoặc bật lại trong Cài đặt."
truncated_history_warning: "Lịch sử giá chỉ khả dụng từ %{date} trở đi. Các ngày trước đó không có dữ liệu từ nhà cung cấp đã chọn."
switch_provider_label: Chuyển nhà cung cấp
switch_provider_description: "%{provider} đã bị tắt. Tìm kiếm chứng khoán này từ nhà cung cấp khác đã bật."
switch_provider_button: Chuyển
no_security_provider: Chưa cấu hình nhà cung cấp chứng khoán. Không thể tìm kiếm chứng khoán.
security_remapped_label: Chứng khoán đã được ánh xạ lại
provider_sent: "Nhà cung cấp gửi: %{ticker}"
reset_to_provider: Đặt lại về nhà cung cấp
reset_confirm_title: Đặt lại chứng khoán về nhà cung cấp?
reset_confirm_body: "Thao tác này sẽ thay đổi chứng khoán từ %{current} về %{original} và chuyển tất cả giao dịch liên quan."
ticker_label: Mã ticker
trade_history_entry: "%{qty} cổ phiếu %{security} ở mức %{price}"
total_return_label: Tổng lợi nhuận
unknown: Không xác định
cost_basis_locked_label: Giá vốn đã bị khóa
cost_basis_locked_description: Giá vốn bạn đặt thủ công sẽ không bị thay đổi khi đồng bộ.
unlock_cost_basis: Mở khóa
unlock_confirm_title: Mở khóa giá vốn?
unlock_confirm_body: Thao tác này sẽ cho phép giá vốn được cập nhật bởi đồng bộ nhà cung cấp hoặc tính toán giao dịch.
shares_label: Cổ phiếu
book_value_label: Giá trị sổ sách
market_value_label: Giá trị thị trường
market_data_label: Dữ liệu thị trường
market_data_sync_button: Làm mới
last_price_update: Cập nhật giá lần cuối
syncing: Đang đồng bộ...
never: Chưa bao giờ

View File

@@ -0,0 +1,92 @@
---
vi:
providers:
ibkr:
name: Interactive Brokers
connection_description: Kết nối báo cáo Flex Web Service của Interactive Brokers
institution_name: Interactive Brokers
ibkr_items:
defaults:
name: Interactive Brokers
ibkr_item:
deletion_in_progress: Đang xóa
flex_web_service: Flex Web Service
syncing: Đang đồng bộ
requires_update: Thông tin xác thực cần chú ý
error: Lỗi
synced: Đã đồng bộ %{time} trước. %{summary}.
never_synced: Chưa bao giờ đồng bộ.
setup_accounts: Thiết lập tài khoản
delete: Xóa
accounts_need_setup: Tài khoản cần thiết lập
accounts_need_setup_description: Một số tài khoản từ IBKR cần được liên kết với tài khoản Sure.
no_accounts_discovered: Chưa phát hiện tài khoản IBKR nào.
no_accounts_discovered_description: Chạy đồng bộ sau khi cấu hình truy vấn Flex để phát hiện tài khoản.
setup_accounts:
page_title: Thiết lập tài khoản Interactive Brokers
dialog_title: Thiết lập tài khoản Interactive Brokers của bạn
subtitle: Chọn tài khoản brokerage IBKR để liên kết.
info_box:
title: Nhập Flex Query IBKR
items:
item_1: Tài sản nắm giữ với giá hiện tại và số lượng
item_2: Cơ sở chi phí theo vị thế
item_3: Giao dịch, cổ tức, hoa hồng và tiền gửi hoặc rút tiền
warning: Hoạt động lịch sử bị giới hạn trong khoảng thời gian báo cáo của Flex Query
status:
fetching_accounts: Đang lấy tài khoản từ Interactive Brokers...
no_accounts_found_title: Không tìm thấy tài khoản.
no_accounts_found_description: Sure không thể tìm thấy tài khoản IBKR nào trong báo cáo Flex mới nhất.
available_accounts:
title: Tài khoản có sẵn
account_type_investment: Đầu tư
account_summary: "%{account_type} • Số dư: %{balance}"
account_id: "Mã tài khoản: %{account_id}"
link_existing:
description: Hoặc liên kết tài khoản IBKR đã phát hiện với tài khoản đầu tư thủ công hiện có.
manual_account_option: "%{name} (%{balance})"
select_prompt: Chọn một tài khoản...
linked_accounts:
title: Đã liên kết
linked_to_html: "Liên kết với: %{account}"
buttons:
refresh: Làm mới
cancel: Hủy
back_to_settings: Quay lại Cài đặt
create_selected_accounts: Tạo tài khoản đã chọn
link: Liên kết
done: Xong
sync_status:
no_accounts: Chưa phát hiện tài khoản IBKR nào
all_linked:
one: 1 tài khoản đã liên kết
other: "%{count} tài khoản đã liên kết"
partial: "%{linked} đã liên kết, %{unlinked} cần thiết lập"
select_existing_account:
title: Liên kết tài khoản Interactive Brokers
no_accounts_available: Chưa có tài khoản Interactive Brokers chưa được liên kết.
run_sync_hint: "Chạy đồng bộ từ Cài đặt > Nhà cung cấp sau khi cập nhật truy vấn Flex."
wait_for_sync: Chờ quá trình đồng bộ phát hiện tài khoản hoàn tất.
balance: Số dư
link: Liên kết
cancel: Hủy
create:
success: Đã cấu hình Interactive Brokers thành công.
update:
success: Đã cập nhật cấu hình Interactive Brokers thành công.
destroy:
success: Đã lên lịch xóa kết nối Interactive Brokers.
select_accounts:
not_configured: Interactive Brokers chưa được cấu hình.
link_existing_account:
not_found: Không tìm thấy tài khoản hoặc cấu hình Interactive Brokers.
only_manual_investment: Chỉ tài khoản đầu tư thủ công mới có thể liên kết với Interactive Brokers.
already_linked: Tài khoản Interactive Brokers này đã được liên kết.
success: Đã liên kết thành công với tài khoản Interactive Brokers.
failed: Liên kết tài khoản Interactive Brokers thất bại.
complete_account_setup:
success:
one: Đã tạo thành công %{count} tài khoản Interactive Brokers.
other: Đã tạo thành công %{count} tài khoản Interactive Brokers.
none_selected: Không có tài khoản nào được chọn.
none_created: Không có tài khoản nào được tạo.

View File

@@ -0,0 +1,25 @@
---
vi:
impersonation_sessions:
approve:
success: Yêu cầu đã được chấp thuận
complete:
success: Phiên đã hoàn tất
create:
success: Yêu cầu đã được gửi đến người dùng. Đang chờ chấp thuận.
join:
success: Đã tham gia phiên
leave:
success: Đã rời phiên
reject:
success: Yêu cầu đã bị từ chối
super_admin_bar:
super_admin: Quản trị viên cấp cao
jobs: Công việc
impersonating: Đang mạo danh
leave: Rời
terminate: Kết thúc
join_a_session: Tham gia phiên
join: Tham gia
uuid_placeholder: UUID
request_impersonation: Yêu cầu mạo danh

View File

@@ -0,0 +1,436 @@
---
vi:
import:
qif_category_selections:
update:
success: "Đã lưu danh mục và nhãn."
show:
title: "Cấu hình & chọn"
description: "Xem lại định dạng ngày được phát hiện, sau đó chọn danh mục và nhãn từ tệp QIF để đưa vào %{product_name}."
categories_heading: Danh mục
categories_found:
one: "Tìm thấy 1 danh mục"
other: "Tìm thấy %{count} danh mục"
category_name_col: Tên danh mục
transactions_col: Giao dịch
tags_heading: Nhãn
tags_found:
one: "Tìm thấy 1 nhãn"
other: "Tìm thấy %{count} nhãn"
tag_name_col: Tên nhãn
txn_count:
one: "1 giao dịch"
other: "%{count} giao dịch"
split_warning_title: Phát hiện giao dịch phân chia
split_warning_description: "Tệp QIF này chứa giao dịch phân chia. Phân chia chưa được hỗ trợ, mỗi giao dịch phân chia sẽ được nhập như một giao dịch đơn với toàn bộ số tiền và không có danh mục."
split_badge: phân chia
empty_state_primary: Không tìm thấy danh mục hoặc nhãn nào trong tệp QIF này.
empty_state_secondary: Tất cả giao dịch sẽ được nhập mà không có danh mục hoặc nhãn.
submit: Tiếp tục xem xét
cleans:
show:
not_configured: "Vui lòng cấu hình nhập dữ liệu trước khi tiếp tục."
description: Chỉnh sửa dữ liệu trong bảng bên dưới. Ô đỏ là không hợp lệ.
errors_notice: Dữ liệu của bạn có lỗi. Di chuột qua lỗi để xem chi tiết.
errors_notice_mobile: Dữ liệu của bạn có lỗi. Nhấn vào tooltip lỗi để xem chi tiết.
title: Làm sạch dữ liệu
data_cleaned: Dữ liệu của bạn đã được làm sạch
next_step: Bước tiếp theo
all_rows: Tất cả hàng
error_rows: Hàng lỗi
configurations:
update:
success: Đã cấu hình nhập dữ liệu thành công.
account_import:
leave_empty: Để trống
default: Mặc định
entity_type: Loại thực thể
name: Tên
balance: Số dư
currency: Tiền tệ
balance_date: Ngày số dư
date_format: Định dạng ngày
select_format: Chọn định dạng
apply_configuration: Áp dụng cấu hình
transaction_import:
date_label: Ngày
select_column: Chọn cột
select_format: Chọn định dạng
amount_label: Số tiền
default: Mặc định
currency_label: Tiền tệ
format_label: Định dạng
amount_type_strategy_label: Chiến lược loại số tiền
select_strategy: Chọn chiến lược
set: Đặt
as_amount_type_column: là cột loại số tiền
select_value: Chọn giá trị
as_identifier_value: là giá trị định danh
treat_as_html: "Xem \"<span class=\"font-medium\">%{value}</span>\" là"
income_inflow: Thu nhập (dòng vào)
expense_outflow: Chi tiêu (dòng ra)
select_type: Chọn loại
leave_empty: Để trống
account_label: Tài khoản
name_label: Tên
category_label: Danh mục
tags_label: Nhãn
notes_label: Ghi chú
apply_configuration: Áp dụng cấu hình
incomes_are_positive: Thu nhập là số dương
incomes_are_negative: Thu nhập là số âm
amount_type_label: Loại số tiền
select_convention: Chọn quy ước
date_format_label: Định dạng ngày
rows_to_skip_label: Bỏ qua n hàng đầu
trade_import:
select_column: Chọn cột
date_label: Ngày
quantity_label: Số lượng
buys_are_positive: Mua là số lượng dương
buys_are_negative: Mua là số lượng âm
default: Mặc định
currency_label: Tiền tệ
format_label: Định dạng
select_format: Chọn định dạng
ticker_label: Mã ticker
leave_empty: Để trống
stock_exchange_code_label: Mã sàn giao dịch
price_label: Giá
account_label: Tài khoản
name_label: Tên
note_label: Ghi chú
no_security_provider_warning: Nhà cung cấp giá chứng khoán chưa được cấu hình. Nhập giao dịch sẽ hoạt động, nhưng Sure sẽ không bổ sung lịch sử giá. Vui lòng vào cài đặt để cấu hình.
date_format_label: Định dạng ngày
apply_configuration: Áp dụng cấu hình
category_import:
button_label: Tiếp tục
description: Tải lên tệp CSV đơn giản (như tệp chúng tôi tạo khi bạn xuất dữ liệu). Chúng tôi sẽ tự động ánh xạ các cột cho bạn.
instructions: Chọn tiếp tục để phân tích CSV và chuyển sang bước làm sạch.
mint_import:
date_format_label: Định dạng ngày
actual_import:
preconfigured_notice: Chúng tôi đã cấu hình sẵn nhập Actual Budget cho bạn. Vui lòng tiến hành bước tiếp theo.
leave_empty: Để trống
date_label: Ngày
date_format_label: Định dạng ngày
amount_label: Số tiền
signage_convention_label: Quy ước dấu
incomes_are_negative: Thu nhập là số âm
incomes_are_positive: Thu nhập là số dương
account_label: Tài khoản (tùy chọn)
name_label: Người trả (tùy chọn)
category_label: Danh mục (tùy chọn)
notes_label: Ghi chú (tùy chọn)
apply_configuration: Áp dụng cấu hình
rule_import:
description: Cấu hình nhập quy tắc. Các quy tắc sẽ được tạo hoặc cập nhật dựa trên dữ liệu CSV.
process_button: Xử lý quy tắc
process_help: Nhấn nút bên dưới để xử lý CSV và tạo các hàng quy tắc.
show:
description: Chọn các cột tương ứng với từng trường trong CSV.
title: Cấu hình nhập dữ liệu
confirms:
sure_import:
title: Xác nhận nhập dữ liệu
description: Xem lại dữ liệu sẽ được nhập từ tệp xuất.
summary: Tóm tắt nhập dữ liệu
empty_summary: Chúng tôi không tìm thấy bản ghi nào có thể nhập trong tệp này. Tệp có thể trống hoặc các dòng không khớp định dạng xuất mong đợi.
publish_button: Bắt đầu nhập
cancel: Hủy
mappings:
create_account: Tạo tài khoản
csv_mapping_label: "%{mapping} trong CSV"
sure_mapping_label: "%{mapping} trong %{product_name}"
no_accounts: Bạn chưa có tài khoản nào. Vui lòng tạo tài khoản để sử dụng cho các hàng (chưa gán) trong CSV hoặc quay lại bước Làm sạch và cung cấp tên tài khoản.
rows_label: Hàng
unassigned_account: Cần tạo tài khoản mới cho các hàng chưa gán?
next: Tiếp theo
show:
invalid_data: "Dữ liệu không hợp lệ, vui lòng chỉnh sửa cho đến khi tất cả lỗi được giải quyết"
account_mapping_description: Gán tất cả tài khoản từ tệp nhập vào các tài khoản hiện có của %{product_name}. Bạn cũng có thể thêm tài khoản mới hoặc để chưa phân loại.
account_mapping_title: Gán tài khoản
account_type_mapping_description: Gán tất cả loại tài khoản từ tệp nhập vào %{product_name}
account_type_mapping_title: Gán loại tài khoản
category_mapping_description: Gán tất cả danh mục từ tệp nhập vào các danh mục hiện có của %{product_name}. Bạn cũng có thể thêm danh mục mới hoặc để chưa phân loại.
category_mapping_title: Gán danh mục
tag_mapping_description: Gán tất cả nhãn từ tệp nhập vào các nhãn hiện có của %{product_name}. Bạn cũng có thể thêm nhãn mới hoặc để chưa phân loại.
tag_mapping_title: Gán nhãn
uploads:
update:
qif_uploaded: "Tệp QIF đã được tải lên thành công."
show:
csv_invalid: "Phải là CSV hợp lệ có tiêu đề và ít nhất một hàng dữ liệu"
drop_csv_title: Thả CSV để tải lên
drop_csv_subtitle: Tệp của bạn sẽ được tải lên tự động
upload_csv_tab: Tải CSV lên
copy_paste_tab: Sao chép & Dán
account_optional_label: Tài khoản (tùy chọn)
multi_account_import: Nhập nhiều tài khoản
upload_csv_button: Tải CSV lên
paste_csv_placeholder: Dán nội dung tệp CSV của bạn tại đây
download_sample_csv: Tải xuống CSV mẫu
to_see_format: để xem định dạng CSV yêu cầu
qif_title: Tải tệp QIF lên
qif_description: Chọn tài khoản mà tệp QIF này thuộc về, rồi tải lên tệp xuất .qif từ Quicken.
qif_account_label: Tài khoản
qif_account_placeholder: Chọn tài khoản…
qif_file_prompt: để thêm tệp QIF tại đây
qif_file_hint: Chỉ tệp .qif
qif_submit: Tải QIF lên
browse: Duyệt
csv_file_prompt: để thêm tệp CSV tại đây
description: Dán hoặc tải lên tệp CSV bên dưới. Vui lòng xem hướng dẫn trong bảng bên dưới trước khi bắt đầu.
instructions_1: Bên dưới là CSV mẫu với các cột có thể nhập.
instructions_2: CSV của bạn phải có hàng tiêu đề
instructions_3: Bạn có thể đặt tên cột tùy ý. Bạn sẽ ánh xạ chúng ở bước sau.
instructions_4: Các cột được đánh dấu dấu hoa thị (*) là dữ liệu bắt buộc.
instructions_5: Không có dấu phẩy, ký hiệu tiền tệ và dấu ngoặc đơn trong số.
title: Nhập dữ liệu
sure_import:
title: Nhập từ xuất
description: Tải lên tệp all.ndjson từ xuất dữ liệu để khôi phục tài khoản, giao dịch, danh mục và nhiều hơn nữa.
drop_title: Thả NDJSON để tải lên
drop_subtitle: Tệp của bạn sẽ được tải lên tự động
browse: Duyệt
browse_hint: để thêm tệp all.ndjson tại đây
upload_button: Tải NDJSON lên
hint_html: Tải lên tệp <strong>all.ndjson</strong> từ tệp ZIP xuất dữ liệu
ndjson_invalid: Phải là NDJSON hợp lệ với ít nhất một bản ghi
imports:
mapping_labels:
account_type: "Loại tài khoản"
account: "Tài khoản"
category: "Danh mục"
tag: "Nhãn"
dry_run_resources:
transactions: "Giao dịch"
balances: "Số dư"
accounts: "Tài khoản"
categories: "Danh mục"
tags: "Nhãn"
rules: "Quy tắc"
merchants: "Nhà cung cấp"
recurring_transactions: "Giao dịch định kỳ"
transfers: "Chuyển khoản"
rejected_transfers: "Chuyển khoản bị từ chối"
trades: "Giao dịch chứng khoán"
holdings: "Danh mục nắm giữ"
valuations: "Định giá"
budgets: "Ngân sách"
budget_categories: "Danh mục ngân sách"
column_labels:
date: "Ngày"
amount: "Số tiền"
name: "Tên"
currency: "Tiền tệ"
category: "Danh mục"
tags: "Nhãn"
account: "Tài khoản"
notes: "Ghi chú"
qty: "Số lượng"
ticker: "Mã ticker"
exchange: "Sàn giao dịch"
price: "Giá"
entity_type: "Loại"
category_parent: "Danh mục cha"
category_color: "Màu sắc"
category_icon: "Biểu tượng Lucide"
update:
account_saved: "Đã lưu tài khoản."
invalid_account: "Không tìm thấy tài khoản."
publish:
started: "Quá trình nhập đã bắt đầu trong nền."
max_rows_exceeded: "Tệp nhập vượt quá số hàng tối đa là %{max}."
revert:
started: "Đang hoàn tác nhập dữ liệu trong nền."
apply_template:
template_applied: "Đã áp dụng mẫu."
no_template_found: "Không tìm thấy mẫu, vui lòng cấu hình nhập thủ công."
destroy:
deleted: "Đã xóa nhập dữ liệu."
failure:
title: Nhập thất bại
description: Vui lòng kiểm tra định dạng tệp, các lỗi và đảm bảo tất cả trường bắt buộc được điền, rồi thử lại.
try_again: Thử lại
success:
title: Nhập thành công
description: Dữ liệu đã được thêm thành công vào ứng dụng và sẵn sàng sử dụng.
back_to_dashboard: Quay lại bảng điều khiển
verification:
title: Xác minh đọc lại
checked: Đã kiểm tra
mismatches: Không khớp
status:
not_verified: Chưa xác minh
matched: Khớp
mismatch: Không khớp
failed: Thất bại
reverted: Đã hoàn tác
importing:
title: Đang nhập dữ liệu
description: "Nhập dữ liệu đang được thực hiện. Kiểm tra menu nhập để biết cập nhật hoặc nhấn 'Kiểm tra trạng thái' để làm mới. Bạn có thể tiếp tục sử dụng ứng dụng."
check_status: Kiểm tra trạng thái
back_to_dashboard: Quay lại bảng điều khiển
revert_failure:
title: Hoàn tác nhập thất bại
description: Vui lòng thử lại
try_again: Thử lại
date_format:
heading: Định dạng ngày
description: "Định dạng ngày đã được tự động phát hiện từ tệp. Thay đổi nếu ngày hiển thị không đúng."
preview: "Ngày được phân tích đầu tiên"
error_title: "Không thể phát hiện định dạng ngày"
error_description: "Không có định dạng ngày được hỗ trợ nào có thể phân tích các ngày trong tệp này. Vui lòng kiểm tra tệp có chứa ngày hợp lệ."
type_labels:
transaction_import: "Nhập giao dịch"
trade_import: "Nhập giao dịch chứng khoán"
account_import: "Nhập tài khoản"
mint_import: "Nhập từ Mint"
actual_import: "Nhập từ Actual"
qif_import: "Nhập từ QIF"
category_import: "Nhập danh mục"
rule_import: "Nhập quy tắc"
pdf_import: "Nhập PDF"
document_import: "Nhập tài liệu"
sure_import: "Nhập từ Sure"
steps:
upload: Tải lên
configure: Cấu hình
clean: Làm sạch
map: Ánh xạ
confirm: Xác nhận
select: Chọn
progress: "Bước %{step} trong %{total}"
empty:
message: Không tìm thấy nhập dữ liệu.
index:
title: Nhập dữ liệu
new: Nhập mới
table:
title: Nhập dữ liệu
header:
date: Ngày
operation: Thao tác
status: Trạng thái
actions: Hành động
row:
type_labels:
transaction_import: "Giao dịch"
trade_import: "Giao dịch CK"
account_import: "Tài khoản"
mint_import: "Mint"
actual_import: "Actual"
qif_import: "QIF"
category_import: "Danh mục"
rule_import: "Quy tắc"
pdf_import: "PDF"
document_import: "Tài liệu"
sure_import: "Sure"
status:
in_progress: Đang xử lý
uploading: Đang xử lý hàng
reverting: Đang hoàn tác
revert_failed: Hoàn tác thất bại
complete: Hoàn thành
failed: Thất bại
actions:
revert: Hoàn tác
confirm_revert: Thao tác này sẽ xóa các giao dịch đã nhập, nhưng bạn vẫn có thể xem lại và nhập lại dữ liệu bất cứ lúc nào.
delete: Xóa
view: Xem
empty: Chưa có nhập dữ liệu.
new:
description: Nhập từ công cụ tài chính hoặc tải lên tệp dữ liệu thô.
tab_financial_tools: Công cụ tài chính & Tệp
tab_raw_data: Dữ liệu thô
coming_soon: Sắp ra mắt
import_ynab: Nhập từ YNAB
import_accounts: Nhập tài khoản
import_categories: Nhập danh mục
import_mint: Nhập từ Mint
import_actual: Nhập từ Actual Budget
import_portfolio: Nhập đầu tư
import_rules: Nhập quy tắc
import_transactions: Nhập giao dịch
import_qif: Nhập từ Quicken (QIF)
import_sure: Nhập từ Sure
import_sure_description: Tệp xuất .ndjson đầy đủ
import_file: Nhập tài liệu
import_file_description: Phân tích bằng AI cho PDF và tải lên tệp tìm kiếm được
requires_account: Nhập tài khoản trước để mở khóa tùy chọn này.
resume: Tiếp tục nhập %{type}
sources: Nguồn
title: Nhập mới
create:
file_too_large: Tệp quá lớn. Kích thước tối đa là %{max_size}MB.
invalid_file_type: Loại tệp không hợp lệ. Vui lòng tải lên tệp CSV.
csv_uploaded: Đã tải lên CSV thành công.
ndjson_uploaded: Đã tải lên tệp NDJSON thành công.
pdf_too_large: Tệp PDF quá lớn. Kích thước tối đa là %{max_size}MB.
pdf_processing: PDF của bạn đang được xử lý. Bạn sẽ nhận email khi phân tích hoàn tất.
invalid_pdf: Tệp đã tải lên không phải PDF hợp lệ.
document_too_large: Tệp tài liệu quá lớn. Kích thước tối đa là %{max_size}MB.
invalid_document_file_type: Loại tệp tài liệu không hợp lệ cho kho vector hiện tại.
document_uploaded: Đã tải lên tài liệu thành công.
document_upload_failed: Không thể tải tài liệu lên kho vector. Vui lòng thử lại.
invalid_ndjson_file_type: Loại hoặc định dạng tệp không hợp lệ. Vui lòng tải lên tệp xuất .ndjson hoặc .json hợp lệ.
document_provider_not_configured: Chưa cấu hình kho vector để tải tài liệu lên.
show:
finalize_upload: Vui lòng hoàn tất tải lên tệp.
finalize_mappings: Vui lòng hoàn tất ánh xạ trước khi tiếp tục.
ready:
description: Dưới đây là tóm tắt các mục mới sẽ được thêm vào tài khoản sau khi bạn xuất bản nhập này.
title: Xác nhận dữ liệu nhập
summary_item_label: Mục
summary_count_label: Số lượng
empty_summary: Chúng tôi không tìm thấy bản ghi nào có thể nhập trong tệp này.
publish_import: Xuất bản nhập
back_to_imports: Quay lại nhập dữ liệu
errors:
custom_column_requires_inflow: "Nhập cột tùy chỉnh yêu cầu phải chọn cột dòng vào"
document_types:
bank_statement: Sao kê ngân hàng
credit_card_statement: Sao kê thẻ tín dụng
investment_statement: Sao kê đầu tư
financial_document: Tài liệu tài chính
contract: Hợp đồng
other: Tài liệu khác
unknown: Tài liệu không xác định
pdf_import:
processing_title: Đang xử lý PDF
processing_description: Chúng tôi đang phân tích tài liệu bằng AI. Quá trình này có thể mất chút thời gian. Bạn sẽ nhận email khi phân tích hoàn tất.
check_status: Kiểm tra trạng thái
back_to_dashboard: Quay lại bảng điều khiển
failed_title: Xử lý thất bại
failed_description: Chúng tôi không thể xử lý tài liệu PDF. Vui lòng thử lại hoặc liên hệ hỗ trợ.
try_again: Thử lại
delete_import: Xóa nhập
complete_title: Tài liệu đã được phân tích
complete_description: Chúng tôi đã phân tích PDF và đây là kết quả.
document_type_label: Loại tài liệu
summary_label: Tóm tắt
email_sent_notice: Email đã được gửi đến bạn với các bước tiếp theo.
back_to_imports: Quay lại nhập dữ liệu
unknown_state_title: Trạng thái không xác định
unknown_state_description: Nhập này ở trạng thái không mong đợi. Vui lòng quay lại nhập dữ liệu.
processing_failed_with_message: "%{message}"
processing_failed_generic: "Xử lý thất bại: %{error}"
ready_for_review_title: Sẵn sàng xem xét
ready_for_review_description: "Chúng tôi đã trích xuất %{count} giao dịch từ sao kê. Xem xét và xuất bản để thêm vào tài khoản."
transactions_extracted: Giao dịch đã trích xuất
transactions_extracted_count:
one: "%{count} giao dịch"
other: "%{count} giao dịch"
select_account: Nhập vào tài khoản
select_account_placeholder: Chọn tài khoản...
select_account_hint: Chọn tài khoản để nhập các giao dịch này vào.
no_accounts: Chưa có tài khoản. Vui lòng tạo tài khoản trước.
create_account: Tạo tài khoản
save_account: Lưu
publish_transactions:
one: "Xuất bản %{count} giao dịch"
other: "Xuất bản %{count} giao dịch"
review_transactions: Xem xét giao dịch
select_account_to_continue: Vui lòng chọn tài khoản ở trên để tiếp tục.
unknown_document_type: Không xác định

View File

@@ -0,0 +1,239 @@
---
vi:
indexa_capital_items:
sync_status:
no_accounts: "Không tìm thấy tài khoản"
synced:
one: "%{count} tài khoản đã đồng bộ"
other: "%{count} tài khoản đã đồng bộ"
synced_with_setup: "%{linked} đã đồng bộ, %{unlinked} cần thiết lập"
institution_summary:
none: "Chưa kết nối tổ chức nào"
count:
one: "%{count} tổ chức"
other: "%{count} tổ chức"
errors:
provider_not_configured: "Nhà cung cấp Indexa Capital chưa được cấu hình"
sync:
status:
importing: "Đang nhập tài khoản từ Indexa Capital..."
processing: "Đang xử lý tài sản nắm giữ và hoạt động..."
calculating: "Đang tính toán số dư..."
importing_data: "Đang nhập dữ liệu tài khoản..."
checking_setup: "Đang kiểm tra cấu hình tài khoản..."
needs_setup: "%{count} tài khoản cần thiết lập..."
success: "Đã bắt đầu đồng bộ"
panel:
setup_instructions: "Hướng dẫn thiết lập:"
step_1: "Truy cập bảng điều khiển Indexa Capital để tạo mã thông báo API chỉ đọc"
step_2: "Dán mã thông báo API của bạn bên dưới và nhấn Lưu"
step_3: "Sau khi kết nối thành công, đi đến tab Tài khoản để thiết lập tài khoản mới"
field_descriptions: "Mô tả các trường:"
optional: "(Tùy chọn)"
required: "(bắt buộc)"
optional_with_default: "(tùy chọn, mặc định là %{default_value})"
alternative_auth: "Hoặc sử dụng xác thực tên đăng nhập/mật khẩu thay thế..."
save_button: "Lưu cấu hình"
update_button: "Cập nhật cấu hình"
fields:
api_token:
label: "Mã thông báo API"
description: "Mã thông báo API chỉ đọc từ bảng điều khiển Indexa Capital"
placeholder_new: "Dán mã thông báo API vào đây"
placeholder_update: "Nhập mã thông báo API mới để cập nhật"
username:
label: "Tên đăng nhập"
description: "Tên đăng nhập/email Indexa Capital của bạn"
placeholder_new: "Dán tên đăng nhập vào đây"
placeholder_update: "Nhập tên đăng nhập mới để cập nhật"
document:
label: "Mã tài liệu"
description: "Mã tài liệu/ID Indexa Capital của bạn"
placeholder_new: "Dán mã tài liệu vào đây"
placeholder_update: "Nhập mã tài liệu mới để cập nhật"
password:
label: "Mật khẩu"
description: "Mật khẩu Indexa Capital của bạn"
placeholder_new: "Dán mật khẩu vào đây"
placeholder_update: "Nhập mật khẩu mới để cập nhật"
create:
success: "Kết nối Indexa Capital đã được tạo thành công"
update:
success: "Kết nối Indexa Capital đã được cập nhật"
destroy:
success: "Kết nối Indexa Capital đã được xóa"
index:
title: "Kết nối Indexa Capital"
loading:
loading_message: "Đang tải tài khoản Indexa Capital..."
loading_title: "Đang tải"
link_accounts:
all_already_linked:
one: "Tài khoản đã chọn (%{names}) đã được liên kết"
other: "Tất cả %{count} tài khoản đã chọn đã được liên kết: %{names}"
api_error: "Lỗi API: %{message}"
invalid_account_names:
one: "Không thể liên kết tài khoản không có tên"
other: "Không thể liên kết %{count} tài khoản không có tên"
link_failed: "Liên kết tài khoản thất bại"
no_accounts_selected: "Vui lòng chọn ít nhất một tài khoản"
no_api_key: "Không tìm thấy thông tin xác thực Indexa Capital. Vui lòng cấu hình trong Cài đặt nhà cung cấp."
partial_invalid: "Đã liên kết thành công %{created_count} tài khoản, %{already_linked_count} đã được liên kết, %{invalid_count} tài khoản có tên không hợp lệ"
partial_success: "Đã liên kết thành công %{created_count} tài khoản. %{already_linked_count} tài khoản đã được liên kết: %{already_linked_names}"
success:
one: "Đã liên kết thành công %{count} tài khoản"
other: "Đã liên kết thành công %{count} tài khoản"
indexa_capital_item:
accounts_need_setup: "Tài khoản cần thiết lập"
delete: "Xóa kết nối"
deletion_in_progress: "đang xóa..."
error: "Lỗi"
more_accounts_available:
one: "%{count} tài khoản khác có sẵn"
other: "%{count} tài khoản khác có sẵn"
no_accounts_description: "Kết nối này chưa có tài khoản nào được liên kết."
no_accounts_title: "Không có tài khoản"
provider_name: "Indexa Capital"
requires_update: "Kết nối cần cập nhật"
setup_action: "Thiết lập tài khoản mới"
setup_description: "%{linked} trong số %{total} tài khoản đã liên kết. Chọn loại tài khoản cho các tài khoản Indexa Capital mới được nhập."
setup_needed: "Tài khoản mới sẵn sàng để thiết lập"
status: "Đồng bộ %{timestamp} trước — %{summary}"
status_never: "Chưa bao giờ đồng bộ"
syncing: "Đang đồng bộ..."
total: "Tổng cộng"
unlinked: "Chưa liên kết"
update_credentials: "Cập nhật thông tin xác thực"
select_accounts:
accounts_selected: "tài khoản đã chọn"
api_error: "Lỗi API: %{message}"
cancel: "Hủy"
configure_name_in_provider: "Không thể nhập - vui lòng cấu hình tên tài khoản trong Indexa Capital"
description: "Chọn tài khoản bạn muốn liên kết với tài khoản %{product_name} của bạn."
link_accounts: "Liên kết tài khoản đã chọn"
no_accounts_found: "Không tìm thấy tài khoản. Vui lòng kiểm tra thông tin xác thực Indexa Capital."
no_api_key: "Thông tin xác thực Indexa Capital chưa được cấu hình. Vui lòng cấu hình trong Cài đặt."
no_credentials_configured: "Vui lòng cấu hình thông tin xác thực Indexa Capital trước trong Cài đặt nhà cung cấp."
no_name_placeholder: "(Không có tên)"
title: "Chọn tài khoản Indexa Capital"
select_existing_account:
account_already_linked: "Tài khoản này đã được liên kết với nhà cung cấp"
all_accounts_already_linked: "Tất cả tài khoản Indexa Capital đã được liên kết"
api_error: "Lỗi API: %{message}"
balance_label: "Số dư:"
cancel: "Hủy"
cancel_button: "Hủy"
configure_name_in_provider: "Không thể nhập - vui lòng cấu hình tên tài khoản trong Indexa Capital"
connect_hint: "Kết nối tài khoản Indexa Capital để bật đồng bộ tự động."
description: "Chọn tài khoản Indexa Capital để liên kết với tài khoản này. Giao dịch sẽ được đồng bộ và loại bỏ trùng lặp tự động."
header: "Liên kết với Indexa Capital"
link_account: "Liên kết tài khoản"
link_button: "Liên kết tài khoản này"
linking_to: "Đang liên kết với:"
no_account_specified: "Chưa chỉ định tài khoản"
no_accounts: "Không tìm thấy tài khoản Indexa Capital chưa liên kết."
no_accounts_found: "Không tìm thấy tài khoản Indexa Capital. Vui lòng kiểm tra thông tin xác thực."
no_api_key: "Thông tin xác thực Indexa Capital chưa được cấu hình. Vui lòng cấu hình trong Cài đặt."
no_credentials_configured: "Vui lòng cấu hình thông tin xác thực Indexa Capital trước trong Cài đặt nhà cung cấp."
no_name_placeholder: "(Không có tên)"
settings_link: "Đi đến Cài đặt nhà cung cấp"
subtitle: "Chọn tài khoản Indexa Capital"
title: "Liên kết %{account_name} với Indexa Capital"
link_existing_account:
account_already_linked: "Tài khoản này đã được liên kết với nhà cung cấp"
api_error: "Lỗi API: %{message}"
invalid_account_name: "Không thể liên kết tài khoản không có tên"
provider_account_already_linked: "Tài khoản Indexa Capital này đã được liên kết với tài khoản khác"
provider_account_not_found: "Không tìm thấy tài khoản Indexa Capital"
missing_parameters: "Thiếu tham số bắt buộc"
no_api_key: "Không tìm thấy thông tin xác thực Indexa Capital. Vui lòng cấu hình trong Cài đặt nhà cung cấp."
success: "Đã liên kết thành công %{account_name} với Indexa Capital"
setup_accounts:
account_type_label: "Loại tài khoản:"
accounts_count:
one: "%{count} tài khoản có sẵn"
other: "%{count} tài khoản có sẵn"
all_accounts_linked: "Tất cả tài khoản Indexa Capital của bạn đã được thiết lập."
api_error: "Lỗi API: %{message}"
creating: "Đang tạo tài khoản..."
fetch_failed: "Tải tài khoản thất bại"
import_selected: "Nhập tài khoản đã chọn"
instructions: "Chọn tài khoản bạn muốn nhập từ Indexa Capital. Bạn có thể chọn nhiều tài khoản."
no_accounts: "Không tìm thấy tài khoản chưa liên kết từ kết nối Indexa Capital này."
no_accounts_to_setup: "Không có tài khoản nào để thiết lập"
no_api_key: "Thông tin xác thực Indexa Capital chưa được cấu hình. Vui lòng kiểm tra cài đặt kết nối."
select_all: "Chọn tất cả"
account_types:
skip: "Bỏ qua tài khoản này"
depository: "Tài khoản thanh toán hoặc tiết kiệm"
credit_card: "Thẻ tín dụng"
investment: "Tài khoản đầu tư"
crypto: "Tài khoản tiền điện tử"
loan: "Vay hoặc thế chấp"
other_asset: "Tài sản khác"
subtype_labels:
depository: "Loại phụ tài khoản:"
credit_card: ""
investment: "Loại đầu tư:"
crypto: ""
loan: "Loại vay:"
other_asset: ""
subtype_messages:
credit_card: "Thẻ tín dụng sẽ được tự động thiết lập dưới dạng tài khoản thẻ tín dụng."
other_asset: "Không cần tùy chọn bổ sung cho Tài sản khác."
crypto: "Tài khoản tiền điện tử sẽ được thiết lập để theo dõi tài sản nắm giữ và giao dịch."
subtypes:
depository:
checking: "Tài khoản thanh toán"
savings: "Tài khoản tiết kiệm"
hsa: "Tài khoản tiết kiệm y tế"
cd: "Chứng chỉ tiền gửi"
money_market: "Thị trường tiền tệ"
investment:
brokerage: "Brokerage"
pension: "Lương hưu"
retirement: "Hưu trí"
"401k": "401(k)"
roth_401k: "Roth 401(k)"
"403b": "403(b)"
tsp: "Thrift Savings Plan"
"529_plan": "529 Plan"
hsa: "Tài khoản tiết kiệm y tế"
mutual_fund: "Quỹ tương hỗ"
ira: "Traditional IRA"
roth_ira: "Roth IRA"
angel: "Angel"
loan:
mortgage: "Thế chấp"
student: "Vay sinh viên"
auto: "Vay mua xe"
other: "Vay khác"
balance: "Số dư"
cancel: "Hủy"
choose_account_type: "Chọn đúng loại tài khoản cho mỗi tài khoản Indexa Capital:"
create_accounts: "Tạo tài khoản"
creating_accounts: "Đang tạo tài khoản..."
historical_data_range: "Phạm vi dữ liệu lịch sử:"
subtitle: "Chọn đúng loại tài khoản cho các tài khoản đã nhập"
sync_start_date_help: "Chọn khoảng thời gian lịch sử giao dịch bạn muốn đồng bộ."
sync_start_date_label: "Bắt đầu đồng bộ giao dịch từ:"
title: "Thiết lập tài khoản Indexa Capital của bạn"
complete_account_setup:
all_skipped: "Tất cả tài khoản đã bị bỏ qua. Không có tài khoản nào được tạo."
creation_failed: "Tạo tài khoản thất bại: %{error}"
no_accounts: "Không có tài khoản nào để thiết lập."
success: "Đã tạo thành công %{count} tài khoản."
preload_accounts:
no_credentials_configured: "Vui lòng cấu hình thông tin xác thực Indexa Capital trước trong Cài đặt nhà cung cấp."

View File

@@ -0,0 +1,196 @@
---
vi:
investments:
edit:
edit: Chỉnh sửa %{account}
form:
none: Không có
subtype_prompt: Chọn loại đầu tư
new:
title: Nhập số dư tài khoản
show:
chart_title: Tổng giá trị
subtypes:
# United States
brokerage:
short: Brokerage
long: Brokerage
401k:
short: 401(k)
long: 401(k)
roth_401k:
short: Roth 401(k)
long: Roth 401(k)
403b:
short: 403(b)
long: 403(b)
457b:
short: 457(b)
long: 457(b)
tsp:
short: TSP
long: Thrift Savings Plan
ira:
short: IRA
long: Traditional IRA
roth_ira:
short: Roth IRA
long: Roth IRA
sep_ira:
short: SEP IRA
long: SEP IRA
simple_ira:
short: SIMPLE IRA
long: SIMPLE IRA
529_plan:
short: 529 Plan
long: 529 Education Savings Plan
hsa:
short: HSA
long: Tài khoản tiết kiệm y tế
ugma:
short: UGMA
long: Tài khoản ủy thác UGMA
utma:
short: UTMA
long: Tài khoản ủy thác UTMA
# United Kingdom
isa:
short: ISA
long: Tài khoản tiết kiệm cá nhân
lisa:
short: LISA
long: Lifetime ISA
sipp:
short: SIPP
long: Quỹ hưu trí cá nhân tự quản
workplace_pension_uk:
short: Lương hưu
long: Lương hưu doanh nghiệp
# Canada
rrsp:
short: RRSP
long: Kế hoạch tiết kiệm hưu trí đăng ký
tfsa:
short: TFSA
long: Tài khoản tiết kiệm miễn thuế
resp:
short: RESP
long: Kế hoạch tiết kiệm giáo dục đăng ký
lira:
short: LIRA
long: Tài khoản hưu trí bị phong tỏa
rrif:
short: RRIF
long: Quỹ thu nhập hưu trí đăng ký
# Australia
super:
short: Super
long: Siêu quỹ hưu trí
smsf:
short: SMSF
long: Quỹ siêu hưu trí tự quản
# Europe
pea:
short: PEA
long: Plan d'Épargne en Actions
pillar_3a:
short: Pillar 3a
long: Lương hưu tư nhân (Pillar 3a)
riester:
short: Riester
long: Riester-Rente
# India
nps:
short: NPS
long: Hệ thống lương hưu quốc gia
apy:
short: APY
long: Atal Pension Yojana
indian_stocks:
short: Cổ phiếu Ấn Độ
long: Cổ phiếu Ấn Độ (Demat)
indian_equity:
short: Cổ phần Ấn Độ
long: Cổ phần Ấn Độ
indian_etf:
short: ETF Ấn Độ
long: ETF Ấn Độ
life_insurance:
short: Bảo hiểm nhân thọ
long: Bảo hiểm nhân thọ
ppf:
short: PPF
long: Quỹ tiết kiệm công cộng
ssy:
short: SSY
long: Sukanya Samriddhi Yojana
nsc:
short: NSC
long: Chứng chỉ tiết kiệm quốc gia
scss:
short: SCSS
long: Kế hoạch tiết kiệm người cao tuổi
fd:
short: FD
long: Tiền gửi cố định
rd:
short: RD
long: Tiền gửi định kỳ
pomis:
short: POMIS
long: Kế hoạch thu nhập hàng tháng bưu điện
kvp:
short: KVP
long: Kisan Vikas Patra
gold_etf:
short: ETF Vàng
long: ETF Vàng
gold_mf:
short: Quỹ tương hỗ Vàng
long: Quỹ tương hỗ Vàng
sgb:
short: SGB
long: Trái phiếu vàng có bảo đảm
g_sec:
short: G-Sec
long: Chứng khoán chính phủ (G-Secs)
sdl:
short: SDL
long: Khoản vay phát triển tiểu bang (SDLs)
corporate_bond:
short: Trái phiếu doanh nghiệp
long: Trái phiếu doanh nghiệp
infrastructure_bond:
short: Trái phiếu cơ sở hạ tầng
long: Trái phiếu cơ sở hạ tầng
tax_free_bond:
short: Trái phiếu miễn thuế
long: Trái phiếu miễn thuế
# Generic
pension:
short: Lương hưu
long: Lương hưu
retirement:
short: Hưu trí
long: Tài khoản hưu trí
mutual_fund:
short: Quỹ tương hỗ
long: Quỹ tương hỗ
gold:
short: Vàng
long: Vàng (vật chất hoặc kỹ thuật số)
angel:
short: Angel
long: Đầu tư thiên thần
trust:
short: Quỹ tín thác
long: Quỹ tín thác
other:
short: Khác
long: Đầu tư khác
value_tooltip:
cash: Tiền mặt
holdings: Danh mục nắm giữ
total: Số dư danh mục
total_value_tooltip: Tổng số dư danh mục là tổng tiền mặt tại sàn giao dịch (có sẵn để giao dịch) và giá trị thị trường hiện tại của các tài sản nắm giữ.

View File

@@ -0,0 +1,8 @@
---
vi:
invitation_mailer:
invite_email:
accept_button: Chấp nhận lời mời
body: "%{inviter} đã mời bạn tham gia %{family} %{moniker} trên %{product_name}!"
expiry_notice: Lời mời này sẽ hết hạn sau %{days} ngày
greeting: Chào mừng đến với %{product_name}!

View File

@@ -0,0 +1,28 @@
---
vi:
invitations:
accept_choice:
create_account: Tạo tài khoản mới
joined_household: Bạn đã tham gia hộ gia đình.
message: "%{inviter} đã mời bạn tham gia với tư cách %{role}."
sign_in_existing: Tôi đã có tài khoản
title: Tham gia %{family}
create:
existing_user_added: Người dùng đã được thêm vào hộ gia đình của bạn.
existing_user_has_family_data: Người dùng đó đã sở hữu một hộ gia đình có tài khoản. Họ cần xóa hoặc chuyển những tài khoản đó trước khi tham gia vào hộ gia đình của bạn.
failure: Không thể gửi lời mời
success: Lời mời đã được gửi thành công
destroy:
failure: Đã xảy ra sự cố khi xóa lời mời.
not_authorized: Bạn không được phép quản lý lời mời.
success: Lời mời đã được xóa thành công.
new:
email_label: Địa chỉ email
email_placeholder: Nhập địa chỉ email
role_admin: Quản trị viên
role_guest: Khách
role_label: Vai trò
role_member: Thành viên
submit: Gửi lời mời
subtitle: Gửi lời mời để tham gia tài khoản %{moniker} của bạn trên %{product_name}
title: Mời ai đó

View File

@@ -0,0 +1,10 @@
---
vi:
invite_codes:
create:
success: "Mã đã được tạo"
destroy:
success: "Mã đã được xóa"
index:
invite_code_description: Tạo mã mới để xem nó được hiển thị ở đây. Các mã đã được tạo và sử dụng sẽ không còn được hiển thị nữa.
no_invite_codes: Không có mã nào để hiển thị

View File

@@ -0,0 +1,85 @@
---
vi:
kraken_items:
provider_connection:
default_name: Kraken
default_description: Liên kết với tài khoản sàn giao dịch Kraken
name: "Kraken - %{name}"
description: "Liên kết với %{name}"
create:
default_name: Kraken
success: Đã kết nối thành công với Kraken. Tài khoản sàn giao dịch của bạn đang được đồng bộ.
update:
success: Đã cập nhật kết nối Kraken thành công.
destroy:
success: Đã lên lịch xóa kết nối Kraken.
select_accounts:
select_connection: Chọn kết nối Kraken trong Cài đặt nhà cung cấp.
no_credentials_configured: Thêm thông tin API Kraken trước khi thiết lập tài khoản.
link_accounts:
select_connection: Chọn kết nối Kraken trước khi liên kết tài khoản.
select_existing_account:
title: Liên kết tài khoản Kraken
no_accounts_found: Không tìm thấy tài khoản Kraken nào.
wait_for_sync: Chờ Kraken hoàn tất đồng bộ.
check_provider_health: Kiểm tra xem thông tin API Kraken của bạn có hợp lệ không.
link: Liên kết
cancel: Hủy
link_existing_account:
success: Đã liên kết thành công với tài khoản Kraken
select_connection: Chọn kết nối Kraken trước khi liên kết tài khoản.
errors:
only_manual: Chỉ tài khoản tiền điện tử thủ công chưa có liên kết nhà cung cấp mới có thể liên kết với Kraken
invalid_kraken_account: Tài khoản Kraken không hợp lệ
kraken_account_already_linked: Tài khoản Kraken này đã được liên kết
setup_accounts:
title: Nhập tài khoản Kraken
subtitle: Chọn tài khoản sàn giao dịch để theo dõi
instructions: Kraken nhập một tài khoản sàn giao dịch tiền điện tử kết hợp cho kết nối này, chỉ với các tài sản nắm giữ và lệnh giao ngay.
no_accounts: Tất cả tài khoản Kraken đã được nhập.
accounts_count:
one: "%{count} tài khoản có sẵn"
other: "%{count} tài khoản có sẵn"
select_all: Chọn tất cả
import_selected: Nhập đã chọn
cancel: Hủy
creating: Đang nhập...
complete_account_setup:
success:
one: "Đã nhập %{count} tài khoản"
other: "Đã nhập %{count} tài khoản"
none_selected: Chưa chọn tài khoản nào
no_accounts: Không có tài khoản nào để nhập
kraken_item:
provider_name: Kraken
syncing: Đang đồng bộ...
reconnect: Thông tin xác thực cần cập nhật
deletion_in_progress: Đang xóa...
sync_status:
no_accounts: Không tìm thấy tài khoản
all_synced:
one: "%{count} tài khoản đã đồng bộ"
other: "%{count} tài khoản đã đồng bộ"
partial_sync: "%{linked_count} đã đồng bộ, %{unlinked_count} cần thiết lập"
status: "Đồng bộ lần cuối %{timestamp} trước"
status_with_summary: "Đồng bộ lần cuối %{timestamp} trước - %{summary}"
status_never: Chưa bao giờ đồng bộ
delete: Xóa
no_accounts_title: Không tìm thấy tài khoản
no_accounts_message: Tài khoản sàn giao dịch Kraken của bạn sẽ xuất hiện ở đây sau khi đồng bộ.
setup_needed: Tài khoản sẵn sàng để nhập
setup_description: Nhập kết nối Kraken này dưới dạng tài khoản sàn giao dịch tiền điện tử.
setup_action: Nhập tài khoản
import_accounts_menu: Nhập tài khoản
stale_rate_warning: "Số dư là xấp xỉ vì tỷ giá hối đoái chính xác cho ngày %{date} không có sẵn. Sẽ cập nhật lần đồng bộ tiếp theo."
kraken_item:
syncer:
checking_credentials: Đang kiểm tra thông tin xác thực...
credentials_invalid: Thông tin API Kraken không hợp lệ. Vui lòng kiểm tra khóa API và bí mật của bạn.
importing_accounts: Đang nhập tài khoản từ Kraken...
checking_configuration: Đang kiểm tra cấu hình tài khoản...
accounts_need_setup:
one: "%{count} tài khoản cần thiết lập"
other: "%{count} tài khoản cần thiết lập"
processing_accounts: Đang xử lý dữ liệu tài khoản...
calculating_balances: Đang tính toán số dư...

View File

@@ -0,0 +1,29 @@
---
vi:
layouts:
application:
privacy_mode: Bật/tắt chế độ riêng tư
skip_to_main: Chuyển đến nội dung chính
nav:
assistant: Trợ lý
budgets: Ngân sách
home: Trang chủ
reports: Báo cáo
transactions: Giao dịch
auth:
existing_account: Đã có tài khoản?
no_account: Mới dùng %{product_name}?
sign_in: Đăng nhập
sign_up: Tạo tài khoản
shared:
footer:
privacy_policy: Chính sách bảo mật
terms_of_service: Điều khoản dịch vụ
confirm_dialog:
are_you_sure: Bạn có chắc không?
cannot_be_undone: Hành động này không thể hoàn tác.
confirm: Xác nhận
trial:
open_demo: Mở bản demo
data_deleted_in_days: Dữ liệu sẽ bị xóa sau %{days} ngày
contribute: Đóng góp

View File

@@ -0,0 +1,37 @@
---
vi:
loans:
edit:
edit: Chỉnh sửa %{account}
form:
interest_rate: Lãi suất
interest_rate_placeholder: '5.25'
initial_balance: Số dư khoản vay ban đầu
rate_type: Loại lãi suất
term_months: Kỳ hạn (tháng)
term_months_placeholder: '360'
none: Không có
subtype_prompt: Chọn loại khoản vay
subtype_none: Không có
new:
title: Nhập thông tin khoản vay
overview:
interest_rate: Lãi suất
monthly_payment: Thanh toán hàng tháng
not_applicable: N/A
original_principal: Vốn gốc ban đầu
remaining_principal: Vốn gốc còn lại
term: Kỳ hạn
type: Loại
unknown: Không xác định
tabs:
overview:
interest_rate: Lãi suất
monthly_payment: Thanh toán hàng tháng
not_applicable: N/A
original_principal: Vốn gốc ban đầu
remaining_principal: Vốn gốc còn lại
term: Kỳ hạn
type: Loại
unknown: Không xác định
edit_loan_details: "Chỉnh sửa thông tin khoản vay"

View File

@@ -0,0 +1,166 @@
---
vi:
lunchflow_items:
api_error:
title: Lỗi kết nối Lunchflow
unable_to_connect: Không thể kết nối với Lunchflow
common_issues: "Các vấn đề thường gặp:"
invalid_api_key_label: Khóa API không hợp lệ
invalid_api_key_desc: Kiểm tra khóa API của bạn trong Cài đặt nhà cung cấp
expired_credentials_label: Thông tin xác thực hết hạn
expired_credentials_desc: Tạo khóa API mới từ Lunchflow
network_issue_label: Sự cố mạng
network_issue_desc: Kiểm tra kết nối internet của bạn
service_down_label: Dịch vụ gián đoạn
service_down_desc: API Lunchflow có thể tạm thời không khả dụng
check_provider_settings: Kiểm tra Cài đặt nhà cung cấp
setup_required:
title: Cần thiết lập Lunchflow
api_key_not_configured: Khóa API chưa được cấu hình
api_key_description: Trước khi liên kết tài khoản Lunchflow, bạn cần cấu hình khóa API Lunchflow.
setup_steps_title: "Các bước thiết lập:"
setup_step_1_html: "Đi đến <strong>Cài đặt → Nhà cung cấp</strong>"
setup_step_2_html: "Tìm phần <strong>Lunchflow</strong>"
setup_step_3: Nhập khóa API Lunchflow của bạn
setup_step_4: Quay lại đây để liên kết tài khoản
go_to_provider_settings: Đi đến Cài đặt nhà cung cấp
create:
success: Kết nối Lunchflow đã được tạo thành công
destroy:
success: Kết nối Lunchflow đã được xóa
index:
title: Kết nối Lunchflow
loading:
loading_message: Đang tải tài khoản Lunchflow...
loading_title: Đang tải
link_accounts:
all_already_linked:
one: "Tài khoản đã chọn (%{names}) đã được liên kết"
other: "Tất cả %{count} tài khoản đã chọn đã được liên kết: %{names}"
api_error: "Lỗi API: %{message}"
invalid_account_names:
one: "Không thể liên kết tài khoản không có tên"
other: "Không thể liên kết %{count} tài khoản không có tên"
link_failed: Liên kết tài khoản thất bại
no_accounts_selected: Vui lòng chọn ít nhất một tài khoản
partial_invalid: "Đã liên kết thành công %{created_count} tài khoản, %{already_linked_count} đã được liên kết, %{invalid_count} tài khoản có tên không hợp lệ"
partial_success: "Đã liên kết thành công %{created_count} tài khoản. %{already_linked_count} tài khoản đã được liên kết: %{already_linked_names}"
success:
one: "Đã liên kết thành công %{count} tài khoản"
other: "Đã liên kết thành công %{count} tài khoản"
lunchflow_item:
accounts_need_setup: Tài khoản cần thiết lập
delete: Xóa kết nối
deletion_in_progress: đang xóa...
error: Lỗi
no_accounts_description: Kết nối này chưa có tài khoản nào được liên kết.
no_accounts_title: Không có tài khoản
setup_action: Thiết lập tài khoản mới
setup_description: "%{linked} trong số %{total} tài khoản đã liên kết. Chọn loại tài khoản cho các tài khoản Lunchflow mới được nhập."
setup_needed: Tài khoản mới sẵn sàng để thiết lập
status: "Đồng bộ %{timestamp} trước"
status_never: Chưa bao giờ đồng bộ
status_with_summary: "Đồng bộ lần cuối %{timestamp} trước • %{summary}"
syncing: Đang đồng bộ...
total: Tổng cộng
unlinked: Chưa liên kết
select_accounts:
accounts_selected: tài khoản đã chọn
api_error: "Lỗi API: %{message}"
cancel: Hủy
configure_name_in_lunchflow: Không thể nhập - vui lòng cấu hình tên tài khoản trong Lunchflow
description: Chọn tài khoản bạn muốn liên kết với tài khoản %{product_name} của bạn.
link_accounts: Liên kết tài khoản đã chọn
no_accounts_found: Không tìm thấy tài khoản. Vui lòng kiểm tra cấu hình khóa API.
no_api_key: Khóa API Lunchflow chưa được cấu hình. Vui lòng cấu hình trong Cài đặt.
no_name_placeholder: "(Không có tên)"
title: Chọn tài khoản Lunchflow
select_existing_account:
account_already_linked: Tài khoản này đã được liên kết với nhà cung cấp
all_accounts_already_linked: Tất cả tài khoản Lunchflow đã được liên kết
api_error: "Lỗi API: %{message}"
cancel: Hủy
configure_name_in_lunchflow: Không thể nhập - vui lòng cấu hình tên tài khoản trong Lunchflow
description: Chọn tài khoản Lunchflow để liên kết với tài khoản này. Giao dịch sẽ được đồng bộ và loại bỏ trùng lặp tự động.
link_account: Liên kết tài khoản
no_account_specified: Chưa chỉ định tài khoản
no_accounts_found: Không tìm thấy tài khoản Lunchflow. Vui lòng kiểm tra cấu hình khóa API.
no_api_key: Khóa API Lunchflow chưa được cấu hình. Vui lòng cấu hình trong Cài đặt.
no_name_placeholder: "(Không có tên)"
title: "Liên kết %{account_name} với Lunchflow"
link_existing_account:
account_already_linked: Tài khoản này đã được liên kết với nhà cung cấp
api_error: "Lỗi API: %{message}"
invalid_account_name: Không thể liên kết tài khoản không có tên
lunchflow_account_already_linked: Tài khoản Lunchflow này đã được liên kết với tài khoản khác
lunchflow_account_not_found: Không tìm thấy tài khoản Lunchflow
missing_parameters: Thiếu tham số bắt buộc
success: "Đã liên kết thành công %{account_name} với Lunchflow"
setup_accounts:
account_type_label: "Loại tài khoản:"
all_accounts_linked: "Tất cả tài khoản Lunchflow của bạn đã được thiết lập."
api_error: "Lỗi API: %{message}"
fetch_failed: "Tải tài khoản thất bại"
no_accounts_to_setup: "Không có tài khoản nào để thiết lập"
no_api_key: "Khóa API Lunchflow chưa được cấu hình. Vui lòng kiểm tra cài đặt kết nối."
account_types:
skip: Bỏ qua tài khoản này
depository: Tài khoản thanh toán hoặc tiết kiệm
credit_card: Thẻ tín dụng
investment: Tài khoản đầu tư
loan: Vay hoặc thế chấp
other_asset: Tài sản khác
subtype_labels:
depository: "Loại phụ tài khoản:"
credit_card: ""
investment: "Loại đầu tư:"
loan: "Loại vay:"
other_asset: ""
subtype_messages:
credit_card: "Thẻ tín dụng sẽ được tự động thiết lập dưới dạng tài khoản thẻ tín dụng."
other_asset: "Không cần tùy chọn bổ sung cho Tài sản khác."
subtypes:
depository:
checking: Tài khoản thanh toán
savings: Tài khoản tiết kiệm
hsa: Tài khoản tiết kiệm y tế
cd: Chứng chỉ tiền gửi
money_market: Thị trường tiền tệ
investment:
brokerage: Brokerage
pension: Lương hưu
retirement: Hưu trí
"401k": "401(k)"
roth_401k: "Roth 401(k)"
"403b": "403(b)"
tsp: Thrift Savings Plan
"529_plan": "529 Plan"
hsa: Tài khoản tiết kiệm y tế
mutual_fund: Quỹ tương hỗ
ira: Traditional IRA
roth_ira: Roth IRA
angel: Angel
loan:
mortgage: Thế chấp
student: Vay sinh viên
auto: Vay mua xe
other: Vay khác
balance: Số dư
cancel: Hủy
choose_account_type: "Chọn đúng loại tài khoản cho mỗi tài khoản Lunchflow:"
create_accounts: Tạo tài khoản
creating_accounts: Đang tạo tài khoản...
historical_data_range: "Phạm vi dữ liệu lịch sử:"
subtitle: Chọn đúng loại tài khoản cho các tài khoản đã nhập
sync_start_date_help: Chọn khoảng thời gian lịch sử giao dịch bạn muốn đồng bộ. Tối đa 3 năm lịch sử có sẵn.
sync_start_date_label: "Bắt đầu đồng bộ giao dịch từ:"
title: Thiết lập tài khoản Lunchflow của bạn
complete_account_setup:
all_skipped: "Tất cả tài khoản đã bị bỏ qua. Không có tài khoản nào được tạo."
creation_failed: "Tạo tài khoản thất bại: %{error}"
no_accounts: "Không có tài khoản nào để thiết lập."
success: "Đã tạo thành công %{count} tài khoản."
sync:
success: Đã bắt đầu đồng bộ
update:
success: Kết nối Lunchflow đã được cập nhật

View File

@@ -0,0 +1,73 @@
---
vi:
family_merchants:
create:
error: 'Lỗi khi tạo nhà cung cấp: %{error}'
success: Nhà cung cấp mới đã được tạo thành công
destroy:
success: Nhà cung cấp đã được xóa thành công
unlinked_success: Nhà cung cấp đã được xóa khỏi giao dịch của bạn
edit:
title: Chỉnh sửa nhà cung cấp
form:
name_placeholder: Tên nhà cung cấp
website_placeholder: "Trang web (ví dụ: starbucks.com)"
website_hint: Nhập trang web của nhà cung cấp để tự động hiển thị logo của họ
index:
empty: Chưa có nhà cung cấp nào
new: Nhà cung cấp mới
merge: Hợp nhất nhà cung cấp
title: Nhà cung cấp
family_title: "Nhà cung cấp của %{moniker}"
family_empty: "Chưa có nhà cung cấp nào của %{moniker}"
provider_title: Nhà cung cấp từ dịch vụ
provider_empty: "Chưa có nhà cung cấp dịch vụ nào được liên kết với %{moniker} này"
provider_read_only: Nhà cung cấp từ dịch vụ được đồng bộ từ các tổ chức tài chính đã kết nối. Không thể chỉnh sửa ở đây.
provider_info: Các nhà cung cấp này được phát hiện tự động bởi kết nối ngân hàng hoặc AI của bạn. Bạn có thể chỉnh sửa chúng để tạo bản sao riêng hoặc xóa chúng để hủy liên kết khỏi giao dịch của bạn.
enhance_info:
one: "%{count} nhà cung cấp dịch vụ đang thiếu thông tin trang web. Cải thiện với AI để phát hiện trang web, hiển thị logo và hợp nhất các nhà cung cấp trùng lặp."
other: "%{count} nhà cung cấp dịch vụ đang thiếu thông tin trang web. Cải thiện với AI để phát hiện trang web, hiển thị logo và hợp nhất các nhà cung cấp trùng lặp."
enhance_button: Cải thiện với AI
unlinked_title: Vừa hủy liên kết
unlinked_info: Các nhà cung cấp này vừa được xóa khỏi giao dịch của bạn. Họ sẽ biến mất khỏi danh sách này sau 30 ngày trừ khi được gán lại cho một giao dịch.
table:
merchant: Nhà cung cấp
actions: Hành động
source: Nguồn
family_merchant:
edit: Chỉnh sửa
delete: Xóa
merchant:
confirm_accept: Xóa nhà cung cấp
confirm_body: Bạn có chắc chắn muốn xóa nhà cung cấp này không? Xóa nhà cung cấp này sẽ hủy liên kết tất cả giao dịch liên quan và có thể ảnh hưởng đến báo cáo của bạn.
confirm_title: Xóa nhà cung cấp?
delete: Xóa nhà cung cấp
edit: Chỉnh sửa nhà cung cấp
merge:
title: Hợp nhất nhà cung cấp
description: Chọn nhà cung cấp đích và các nhà cung cấp cần hợp nhất vào đó. Tất cả giao dịch từ các nhà cung cấp được hợp nhất sẽ được chuyển sang nhà cung cấp đích.
target_label: Hợp nhất vào (đích)
select_target: Chọn nhà cung cấp đích...
sources_label: Nhà cung cấp cần hợp nhất
sources_hint: Các nhà cung cấp được chọn sẽ được hợp nhất vào đích. Nhà cung cấp gia đình sẽ bị xóa, nhà cung cấp dịch vụ sẽ bị hủy liên kết.
submit: Hợp nhất đã chọn
new:
title: Nhà cung cấp mới
perform_merge:
success:
one: Đã hợp nhất thành công %{count} nhà cung cấp
other: Đã hợp nhất thành công %{count} nhà cung cấp
no_merchants_selected: Không có nhà cung cấp nào được chọn để hợp nhất
target_not_found: Không tìm thấy nhà cung cấp đích
invalid_merchants: Nhà cung cấp được chọn không hợp lệ
provider_merchant:
edit: Chỉnh sửa
remove: Xóa
remove_confirm_title: Xóa nhà cung cấp?
remove_confirm_body: Bạn có chắc chắn muốn xóa %{name} không? Thao tác này sẽ hủy liên kết tất cả giao dịch liên quan khỏi nhà cung cấp này nhưng sẽ không xóa nhà cung cấp.
enhance:
success: Quá trình cải thiện nhà cung cấp dịch vụ đã bắt đầu. Các nhà cung cấp sẽ được cải thiện và các bản trùng lặp sẽ được hợp nhất trong thời gian ngắn.
already_running: Quá trình cải thiện đang diễn ra. Vui lòng chờ cho đến khi hoàn tất.
update:
success: Nhà cung cấp đã được cập nhật thành công
converted_success: Nhà cung cấp đã được chuyển đổi và cập nhật thành công

View File

@@ -0,0 +1,208 @@
---
vi:
mercury_items:
api_error:
title: Lỗi kết nối Mercury
unable_to_connect: Không thể kết nối với Mercury
common_issues: "Các vấn đề thường gặp:"
invalid_api_token_label: Mã thông báo API không hợp lệ
invalid_api_token_desc: Kiểm tra mã thông báo API của bạn trong Cài đặt nhà cung cấp
expired_credentials_label: Thông tin xác thực hết hạn
expired_credentials_desc: Tạo mã thông báo API mới từ Mercury
insufficient_permissions_label: Quyền không đủ
insufficient_permissions_desc: Đảm bảo mã thông báo có quyền chỉ đọc
network_issue_label: Sự cố mạng
network_issue_desc: Kiểm tra kết nối internet của bạn
service_down_label: Dịch vụ gián đoạn
service_down_desc: API Mercury có thể tạm thời không khả dụng
check_provider_settings: Kiểm tra Cài đặt nhà cung cấp
setup_required:
title: Cần thiết lập Mercury
api_token_not_configured: Mã thông báo API chưa được cấu hình
api_token_description: Trước khi liên kết tài khoản Mercury, bạn cần cấu hình mã thông báo API Mercury.
setup_steps_title: "Các bước thiết lập:"
setup_step_1_html: "Đi đến <strong>Cài đặt > Nhà cung cấp</strong>"
setup_step_2_html: "Tìm phần <strong>Mercury</strong>"
setup_step_3: Nhập mã thông báo API Mercury của bạn
setup_step_4: Quay lại đây để liên kết tài khoản
go_to_provider_settings: Đi đến Cài đặt nhà cung cấp
create:
success: Kết nối Mercury đã được tạo thành công
destroy:
success: Kết nối Mercury đã được xóa
index:
title: Kết nối Mercury
loading:
loading_message: Đang tải tài khoản Mercury...
loading_title: Đang tải
link_accounts:
all_already_linked:
one: "Tài khoản đã chọn (%{names}) đã được liên kết"
other: "Tất cả %{count} tài khoản đã chọn đã được liên kết: %{names}"
api_error: "Lỗi API: %{message}"
invalid_account_names:
one: "Không thể liên kết tài khoản không có tên"
other: "Không thể liên kết %{count} tài khoản không có tên"
link_failed: Liên kết tài khoản thất bại
no_accounts_selected: Vui lòng chọn ít nhất một tài khoản
no_api_token: Không tìm thấy mã thông báo API Mercury. Vui lòng cấu hình trong Cài đặt nhà cung cấp.
partial_invalid: "Đã liên kết thành công %{created_count} tài khoản, %{already_linked_count} đã được liên kết, %{invalid_count} tài khoản có tên không hợp lệ"
partial_success: "Đã liên kết thành công %{created_count} tài khoản. %{already_linked_count} tài khoản đã được liên kết: %{already_linked_names}"
select_connection: Chọn kết nối Mercury trước khi liên kết tài khoản.
success:
one: "Đã liên kết thành công %{count} tài khoản"
other: "Đã liên kết thành công %{count} tài khoản"
mercury_item:
accounts_need_setup: Tài khoản cần thiết lập
delete: Xóa kết nối
deletion_in_progress: đang xóa...
error: Lỗi
no_accounts_description: Kết nối này chưa có tài khoản nào được liên kết.
no_accounts_title: Không có tài khoản
setup_action: Thiết lập tài khoản mới
setup_description: "%{linked} trong số %{total} tài khoản đã liên kết. Chọn loại tài khoản cho các tài khoản Mercury mới được nhập."
setup_needed: Tài khoản mới sẵn sàng để thiết lập
status: "Đồng bộ %{timestamp} trước"
status_never: Chưa bao giờ đồng bộ
status_with_summary: "Đồng bộ lần cuối %{timestamp} trước - %{summary}"
syncing: Đang đồng bộ...
total: Tổng cộng
unlinked: Chưa liên kết
provider_panel:
add_connection: Thêm kết nối Mercury
base_url_label: URL cơ sở (tùy chọn)
base_url_placeholder: https://api.mercury.com/api/v1 (mặc định)
connection_name_label: Tên kết nối
connection_name_placeholder: Tài khoản kinh doanh
default_connection_name: Kết nối Mercury
disconnect_confirm: "Ngắt kết nối %{name}?"
instructions:
copy_token_html: "Sao chép <strong>toàn bộ mã thông báo</strong> (bao gồm tiền tố <code>secret-token:</code>) và thêm làm kết nối có tên bên dưới"
create_token: Tạo mã thông báo API mới với quyền truy cập "Chỉ đọc"
open_tokens: Đi đến Cài đặt > Nhà phát triển > Mã thông báo API
sign_in_html: "Truy cập %{link} và đăng nhập vào tài khoản bạn muốn kết nối"
whitelist_ip_html: "<strong>Quan trọng:</strong> Thêm địa chỉ IP máy chủ của bạn vào danh sách trắng của mã thông báo"
keep_token_placeholder: Để trống để giữ mã thông báo hiện tại
sandbox_note_html: "Sử dụng kết nối có tên riêng cho mỗi đăng nhập Mercury/mã thông báo API bạn muốn đồng bộ. Để kiểm thử sandbox, dùng <code>https://api-sandbox.mercury.com/api/v1</code> làm URL cơ sở. Mercury yêu cầu đưa vào danh sách trắng IP - đảm bảo thêm IP của bạn trong bảng điều khiển Mercury."
setup_accounts: Thiết lập tài khoản
setup_title: "Hướng dẫn thiết lập:"
sync: Đồng bộ
token_label: Mã thông báo
token_placeholder: Dán mã thông báo vào đây
update_connection: Cập nhật kết nối
provider_connection:
default_description: Kết nối với ngân hàng của bạn qua Mercury
default_name: Mercury
description: "Kết nối bằng %{name}"
name: "Mercury - %{name}"
select_accounts:
accounts_selected: tài khoản đã chọn
api_error: "Lỗi API: %{message}"
cancel: Hủy
configure_name_in_mercury: Không thể nhập - vui lòng cấu hình tên tài khoản trong Mercury
description: Chọn tài khoản bạn muốn liên kết với tài khoản %{product_name} của bạn.
link_accounts: Liên kết tài khoản đã chọn
no_accounts_found: Không tìm thấy tài khoản. Vui lòng kiểm tra cấu hình mã thông báo API.
no_api_token: Mã thông báo API Mercury chưa được cấu hình. Vui lòng cấu hình trong Cài đặt.
no_credentials_configured: Vui lòng cấu hình mã thông báo API Mercury trước trong Cài đặt nhà cung cấp.
no_name_placeholder: "(Không có tên)"
select_connection: Chọn kết nối Mercury trong Cài đặt nhà cung cấp.
title: Chọn tài khoản Mercury
select_existing_account:
account_already_linked: Tài khoản này đã được liên kết với nhà cung cấp
all_accounts_already_linked: Tất cả tài khoản Mercury đã được liên kết
api_error: "Lỗi API: %{message}"
cancel: Hủy
configure_name_in_mercury: Không thể nhập - vui lòng cấu hình tên tài khoản trong Mercury
description: Chọn tài khoản Mercury để liên kết với tài khoản này. Giao dịch sẽ được đồng bộ và loại bỏ trùng lặp tự động.
link_account: Liên kết tài khoản
no_account_specified: Chưa chỉ định tài khoản
no_accounts_found: Không tìm thấy tài khoản Mercury. Vui lòng kiểm tra cấu hình mã thông báo API.
no_api_token: Mã thông báo API Mercury chưa được cấu hình. Vui lòng cấu hình trong Cài đặt.
no_credentials_configured: Vui lòng cấu hình mã thông báo API Mercury trước trong Cài đặt nhà cung cấp.
no_name_placeholder: "(Không có tên)"
select_connection: Chọn kết nối Mercury trong Cài đặt nhà cung cấp.
title: "Liên kết %{account_name} với Mercury"
link_existing_account:
account_already_linked: Tài khoản này đã được liên kết với nhà cung cấp
api_error: "Lỗi API: %{message}"
invalid_account_name: Không thể liên kết tài khoản không có tên
mercury_account_already_linked: Tài khoản Mercury này đã được liên kết với tài khoản khác
mercury_account_not_found: Không tìm thấy tài khoản Mercury
missing_parameters: Thiếu tham số bắt buộc
no_api_token: Không tìm thấy mã thông báo API Mercury. Vui lòng cấu hình trong Cài đặt nhà cung cấp.
select_connection: Chọn kết nối Mercury trước khi liên kết tài khoản.
success: "Đã liên kết thành công %{account_name} với Mercury"
setup_accounts:
account_type_label: "Loại tài khoản:"
all_accounts_linked: "Tất cả tài khoản Mercury của bạn đã được thiết lập."
api_error: "Lỗi API: %{message}"
fetch_failed: "Tải tài khoản thất bại"
no_accounts_to_setup: "Không có tài khoản nào để thiết lập"
no_api_token: "Mã thông báo API Mercury chưa được cấu hình. Vui lòng kiểm tra cài đặt kết nối."
account_types:
skip: Bỏ qua tài khoản này
depository: Tài khoản thanh toán hoặc tiết kiệm
credit_card: Thẻ tín dụng
investment: Tài khoản đầu tư
loan: Vay hoặc thế chấp
other_asset: Tài sản khác
subtype_labels:
depository: "Loại phụ tài khoản:"
credit_card: ""
investment: "Loại đầu tư:"
loan: "Loại vay:"
other_asset: ""
subtype_messages:
credit_card: "Thẻ tín dụng sẽ được tự động thiết lập dưới dạng tài khoản thẻ tín dụng."
other_asset: "Không cần tùy chọn bổ sung cho Tài sản khác."
subtypes:
depository:
checking: Tài khoản thanh toán
savings: Tài khoản tiết kiệm
hsa: Tài khoản tiết kiệm y tế
cd: Chứng chỉ tiền gửi
money_market: Thị trường tiền tệ
investment:
brokerage: Brokerage
pension: Lương hưu
retirement: Hưu trí
"401k": "401(k)"
roth_401k: "Roth 401(k)"
"403b": "403(b)"
tsp: Thrift Savings Plan
"529_plan": "529 Plan"
hsa: Tài khoản tiết kiệm y tế
mutual_fund: Quỹ tương hỗ
ira: Traditional IRA
roth_ira: Roth IRA
angel: Angel
loan:
mortgage: Thế chấp
student: Vay sinh viên
auto: Vay mua xe
other: Vay khác
balance: Số dư
cancel: Hủy
choose_account_type: "Chọn đúng loại tài khoản cho mỗi tài khoản Mercury:"
create_accounts: Tạo tài khoản
creating_accounts: Đang tạo tài khoản...
historical_data_range: "Phạm vi dữ liệu lịch sử:"
subtitle: Chọn đúng loại tài khoản cho các tài khoản đã nhập
sync_start_date_help: Chọn khoảng thời gian lịch sử giao dịch bạn muốn đồng bộ. Tối đa 3 năm lịch sử có sẵn.
sync_start_date_label: "Bắt đầu đồng bộ giao dịch từ:"
title: Thiết lập tài khoản Mercury của bạn
complete_account_setup:
all_skipped: "Tất cả tài khoản đã bị bỏ qua. Không có tài khoản nào được tạo."
creation_failed: "Tạo tài khoản thất bại: %{error}"
no_accounts: "Không có tài khoản nào để thiết lập."
success: "Đã tạo thành công %{count} tài khoản."
sync:
success: Đã bắt đầu đồng bộ
update:
success: Kết nối Mercury đã được cập nhật
mercury_item_selection_error_payload:
select_connection: Chọn kết nối Mercury trước khi tải tài khoản.
render_mercury_item_selection_failure:
select_connection: Chọn kết nối Mercury trong Cài đặt nhà cung cấp.
no_credentials_configured: Vui lòng cấu hình mã thông báo API Mercury trước trong Cài đặt nhà cung cấp.

View File

@@ -0,0 +1,6 @@
---
vi:
messages:
chat_form:
placeholder: "Hỏi bất cứ điều gì ..."
disclaimer: "Phản hồi của AI chỉ mang tính thông tin. Không phải tư vấn tài chính!"

View File

@@ -0,0 +1,41 @@
---
vi:
mfa:
backup_codes:
backup_codes_description: Mỗi mã chỉ có thể được sử dụng một lần. Hãy giữ các mã này an toàn và bảo mật.
backup_codes_title: Mã dự phòng của bạn
continue: Tiếp tục đến Cài đặt bảo mật
description: Lưu trữ các mã dự phòng này ở nơi an toàn - bạn sẽ cần chúng nếu mất quyền truy cập vào ứng dụng xác thực
page_title: Mã dự phòng
title: Lưu mã dự phòng của bạn
create:
invalid_code: Mã xác minh không hợp lệ. Vui lòng thử lại.
disable:
success: Xác thực hai yếu tố đã bị tắt
new:
code_label: Mã xác minh
code_placeholder: Nhập mã 6 chữ số
description: Tăng cường bảo mật tài khoản của bạn bằng cách thiết lập xác thực hai yếu tố
page_title: Thiết lập xác thực hai yếu tố
scan_description: Sử dụng ứng dụng xác thực như Google Authenticator hoặc 1Password để quét mã QR này
scan_title: 1. Quét mã QR
secret_description: Nếu bạn không thể quét mã QR, hãy nhập mã bí mật này theo cách thủ công vào ứng dụng xác thực của bạn
secret_title: Mã nhập thủ công
title: Thiết lập xác thực hai yếu tố
verify_button: Xác minh và bật 2FA
verify_description: Nhập mã 6 chữ số từ ứng dụng xác thực của bạn
verify_title: 2. Nhập mã xác minh
verify:
description: Nhập mã từ ứng dụng xác thực của bạn để tiếp tục
or: hoặc
page_title: Xác minh xác thực hai yếu tố
title: Xác thực hai yếu tố
verify_button: Xác minh
webauthn_button: Sử dụng khóa passkey hoặc khóa bảo mật
webauthn_unsupported: Trình duyệt này không hỗ trợ passkey hoặc khóa bảo mật.
verify_code:
invalid_code: Mã xác thực không hợp lệ. Vui lòng thử lại.
verify_webauthn:
invalid_credential: Không thể xác minh passkey hoặc khóa bảo mật đó. Vui lòng thử lại.
webauthn_options:
unavailable: Không có passkey hoặc khóa bảo mật nào cho tài khoản này.

View File

@@ -0,0 +1,42 @@
---
vi:
oidc_accounts:
link:
no_pending_oidc: Không tìm thấy xác thực OIDC đang chờ xử lý
title_link: Liên kết tài khoản OIDC
title_create: Tạo tài khoản
verify_heading: Xác minh danh tính của bạn
verify_description_html: "Để liên kết tài khoản %{provider} của bạn%{email_suffix}, vui lòng xác minh danh tính bằng cách nhập mật khẩu."
email_suffix_html: " (<strong>%{email}</strong>)"
email_label: Email
email_placeholder: Nhập email của bạn
password_label: Mật khẩu
password_placeholder: Nhập mật khẩu của bạn
verify_hint: Điều này giúp đảm bảo chỉ bạn mới có thể liên kết các tài khoản bên ngoài với hồ sơ của mình.
submit_link: Liên kết tài khoản
create_heading: Tạo tài khoản mới
create_description_html: "Không tìm thấy tài khoản nào với email <strong>%{email}</strong>. Nhấp bên dưới để tạo tài khoản mới bằng danh tính %{provider} của bạn."
info_email: "Email:"
info_name: "Tên:"
submit_create: Tạo tài khoản
submit_accept_invitation: Chấp nhận lời mời
account_creation_disabled: Tạo tài khoản mới qua đăng nhập một lần đã bị tắt. Vui lòng liên hệ với quản trị viên để tạo tài khoản của bạn.
cancel: Hủy
create_link:
no_pending_oidc: Không tìm thấy xác thực OIDC đang chờ xử lý
new_user:
no_pending_oidc: Không tìm thấy xác thực OIDC đang chờ xử lý
title: Hoàn tất tài khoản của bạn
heading: Tạo tài khoản của bạn
description: Vui lòng xác nhận thông tin của bạn để hoàn tất tạo tài khoản với danh tính %{provider}.
email_label: Email (từ nhà cung cấp SSO)
first_name_label: Tên
first_name_placeholder: Nhập tên của bạn
last_name_label: Họ
last_name_placeholder: Nhập họ của bạn
submit: Tạo tài khoản
cancel: Hủy
create_user:
no_pending_oidc: Không tìm thấy xác thực OIDC đang chờ xử lý
account_creation_disabled: Tạo tài khoản SSO đã bị tắt. Vui lòng liên hệ với quản trị viên.
account_created: "Chào mừng! Tài khoản của bạn đã được tạo."

View File

@@ -0,0 +1,66 @@
---
vi:
onboardings:
header:
sign_out: Đăng xuất
setup: Thiết lập
preferences: Tùy chọn
goals: Mục tiêu
start: Bắt đầu
logout:
sign_out: Đăng xuất
show:
title: Hãy thiết lập tài khoản của bạn
subtitle: Trước tiên, hãy thiết lập hồ sơ của bạn.
first_name: Tên
first_name_placeholder: Tên
last_name: Họ
last_name_placeholder: Họ
group_name: Tên nhóm
group_name_placeholder: Tên nhóm
household_name: Tên hộ gia đình
household_name_placeholder: Tên hộ gia đình
moniker_prompt: "Sẽ sử dụng %{product_name} cùng với..."
moniker_family: Thành viên gia đình (chỉ bạn hoặc cùng vợ/chồng, con cái, v.v.)
moniker_group: Nhóm người (công ty, câu lạc bộ, hiệp hội, loại khác)
country: Quốc gia
submit: Tiếp tục
preferences:
title: Cấu hình tùy chọn của bạn
subtitle: Hãy cấu hình tùy chọn của bạn.
example: Tài khoản mẫu
preview: Xem trước cách hiển thị dữ liệu theo tùy chọn.
color_theme: Giao diện màu sắc
theme_system: Hệ thống
theme_light: Sáng
theme_dark: Tối
locale: Ngôn ngữ
currency: Tiền tệ
date_format: Định dạng ngày
submit: Hoàn tất
goals:
title: Điều gì đưa bạn đến đây?
subtitle: Chọn một hoặc nhiều mục tiêu bạn muốn đạt được khi sử dụng %{product_name} làm công cụ tài chính cá nhân.
unified_accounts: Xem tất cả tài khoản ở một nơi
cashflow: Hiểu dòng tiền và chi tiêu
budgeting: Quản lý kế hoạch tài chính và ngân sách
partner: Quản lý tài chính cùng người thân
investments: Theo dõi đầu tư
ai_insights: Để AI giúp tôi hiểu tài chính
optimization: Phân tích và tối ưu hóa tài khoản
reduce_stress: Giảm căng thẳng hoặc lo lắng về tài chính
submit: Tiếp theo
trial:
title: Dùng thử Sure trong 45 ngày
data_deletion: Dữ liệu sẽ bị xóa sau đó
description_html: Bắt đầu từ hôm nay bạn có thể trải nghiệm sản phẩm.<br/>Nếu thích, hãy tự lưu trữ hoặc đóng góp để tiếp tục sử dụng tại đây.
try_button: Dùng thử Sure trong 45 ngày
continue_trial: Tiếp tục dùng thử
upgrade: Nâng cấp
how_it_works: Cách hoạt động ở đây
today: Hôm nay
today_description: Bạn sẽ được truy cập miễn phí Sure trong 45 ngày trên AWS của chúng tôi.
in_40_days: Sau 40 ngày (%{date})
in_40_days_description: Chúng tôi sẽ thông báo để nhắc bạn xuất dữ liệu.
in_45_days: Sau 45 ngày (%{date})
in_45_days_description: Chúng tôi xóa dữ liệu của bạn — hãy đóng góp để tiếp tục sử dụng Sure tại đây!

View File

@@ -0,0 +1,9 @@
---
vi:
other_assets:
edit:
edit: Chỉnh sửa %{account}
balance_tracking_info: "Tài sản khác được theo dõi thông qua định giá thủ công bằng 'Số dư mới', không phải giao dịch. Dòng tiền sẽ không ảnh hưởng đến số dư tài khoản."
new:
title: Nhập thông tin tài sản
balance_tracking_info: "Tài sản khác được theo dõi thông qua định giá thủ công bằng 'Số dư mới', không phải giao dịch. Dòng tiền sẽ không ảnh hưởng đến số dư tài khoản."

View File

@@ -0,0 +1,7 @@
---
vi:
other_liabilities:
edit:
edit: Chỉnh sửa %{account}
new:
title: Nhập thông tin nợ phải trả

View File

@@ -0,0 +1,92 @@
---
vi:
pages:
feedback:
title: Phản hồi
heading: Để lại phản hồi
description: Hãy cho chúng tôi biết nếu bạn có bất kỳ phản hồi cụ thể nào. Bạn có thể đính kèm liên kết đến video hoặc ảnh chụp màn hình.
feature_request: Gửi yêu cầu tính năng
bug_report: Báo cáo lỗi
discuss: "Thảo luận về %{product} với người khác"
intro:
not_authorized: "Trang giới thiệu chỉ dành cho khách."
welcome: "Chào mừng!"
coming_soon: Trải nghiệm giới thiệu sắp ra mắt
description: "Chúng tôi đang xây dựng hành trình đăng ký phong phú hơn để tìm hiểu về mục tiêu, cột mốc và nhu cầu hàng ngày của bạn. Hiện tại, hãy chuyển đến thanh trò chuyện bên cạnh để bắt đầu cuộc trò chuyện với Sure và cho chúng tôi biết bạn đang ở đâu trong hành trình tài chính của mình."
start_chatting: Bắt đầu trò chuyện
redis_configuration_error:
page_title: Yêu cầu cấu hình Redis - Sure
heading: Yêu cầu cấu hình Redis
subheading: Cài đặt Sure tự lưu trữ của bạn cần Redis được cấu hình đúng cách.
why_required_title: Tại sao Redis là bắt buộc?
why_required_body: Sure sử dụng Redis để hỗ trợ các công việc nền Sidekiq cho các tác vụ như đồng bộ dữ liệu tài khoản, xử lý nhập khẩu và các hoạt động nền khác giúp dữ liệu tài chính của bạn luôn cập nhật.
view_setup_guide: Xem hướng dẫn cài đặt
setup_guide_hint: Làm theo hướng dẫn cài đặt Docker đầy đủ để cấu hình Redis
refresh_hint: "Sau khi bạn đã cấu hình Redis, hãy làm mới trang này để tiếp tục."
refresh_page: Làm mới trang
changelog:
title: Có gì mới
privacy:
title: Chính sách bảo mật
heading: Chính sách bảo mật
placeholder: Nội dung chính sách bảo mật sẽ được hiển thị ở đây.
terms:
title: Điều khoản dịch vụ
heading: Điều khoản dịch vụ
placeholder: Nội dung điều khoản dịch vụ sẽ được hiển thị ở đây.
dashboard:
welcome: "Chào mừng trở lại, %{name}"
subtitle: "Đây là tình hình tài chính của bạn"
new: "Mới"
drag_to_reorder: "Kéo để sắp xếp lại phần"
toggle_section: "Bật/tắt hiển thị phần"
net_worth_chart:
data_not_available: Dữ liệu không khả dụng cho khoảng thời gian đã chọn
title: Tài sản ròng
no_account_empty_state:
new_account: Tài khoản mới
no_account_subtitle: Vì chưa có tài khoản nào được thêm vào, không có dữ liệu để hiển thị. Thêm tài khoản đầu tiên của bạn để bắt đầu xem dữ liệu bảng điều khiển.
no_account_title: Chưa có tài khoản nào
balance_sheet:
title: "Bảng cân đối"
no_items: "Chưa có %{name} nào"
add_accounts: "Thêm tài khoản %{name} của bạn để xem phân tích đầy đủ"
no_asset: "Chưa có tài sản nào"
no_liability: "Chưa có nợ phải trả nào"
add_asset_accounts: "Thêm tài khoản tài sản của bạn để xem phân tích đầy đủ"
add_liability_accounts: "Thêm tài khoản nợ phải trả của bạn để xem phân tích đầy đủ"
name: "Tên"
weight: "Tỷ trọng"
value: "Giá trị"
classifications:
asset: "Tài sản"
liability: "Nợ phải trả"
cashflow_sankey:
title: "Dòng tiền"
zoom_out: "Quay lại toàn bộ dòng tiền"
no_data_title: "Không có dữ liệu dòng tiền cho khoảng thời gian này"
no_data_description: "Thêm giao dịch để hiển thị dữ liệu dòng tiền hoặc mở rộng khoảng thời gian"
add_transaction: "Thêm giao dịch"
no_accounts:
title: "Chưa có tài khoản nào"
description: "Thêm tài khoản để hiển thị dữ liệu tài sản ròng"
add_account: "Thêm tài khoản"
outflows_donut:
title: "Chi tiêu"
total_outflows: "Tổng chi tiêu"
categories: "Danh mục"
value: "Giá trị"
weight: "Tỷ trọng"
investment_summary:
title: "Đầu tư"
total_return: "Tổng lợi nhuận"
holding: "Danh mục nắm giữ"
weight: "Tỷ trọng"
value: "Giá trị"
return: "Lợi nhuận"
period_activity: "Hoạt động %{period}"
contributions: "Đóng góp"
withdrawals: "Rút tiền"
trades: "Giao dịch"
no_investments: "Không có tài khoản đầu tư"
add_investment: "Thêm tài khoản đầu tư để theo dõi danh mục của bạn"

View File

@@ -0,0 +1,8 @@
---
vi:
password_mailer:
password_reset:
cta: Đặt lại mật khẩu của bạn
ignore_if_not_requested: Nếu bạn không thực hiện yêu cầu này, bạn có thể bỏ qua email này.
request_made: Một yêu cầu đã được thực hiện để đặt lại mật khẩu %{product_name} của bạn. Nhấp vào liên kết để đặt lại.
subject: '%{product_name}: Đặt lại mật khẩu của bạn'

View File

@@ -0,0 +1,15 @@
---
vi:
password_resets:
disabled: Đặt lại mật khẩu qua Sure đã bị tắt. Vui lòng đặt lại mật khẩu của bạn thông qua nhà cung cấp danh tính.
sso_only_user: Tài khoản của bạn sử dụng SSO để xác thực. Vui lòng liên hệ với quản trị viên để quản lý thông tin đăng nhập của bạn.
edit:
title: Đặt lại mật khẩu
new:
requested: Vui lòng kiểm tra email của bạn để nhận liên kết đặt lại mật khẩu.
submit: Đặt lại mật khẩu
title: Đặt lại mật khẩu
back: Quay lại
update:
invalid_token: Token không hợp lệ.
success: Mật khẩu của bạn đã được đặt lại.

View File

@@ -0,0 +1,10 @@
---
vi:
passwords:
edit:
password: Mật khẩu mới
password_challenge: Mật khẩu hiện tại
submit: Đặt lại mật khẩu
title: Cập nhật mật khẩu
update:
success: Mật khẩu của bạn đã được đặt lại.

View File

@@ -0,0 +1,17 @@
---
vi:
pdf_import_mailer:
next_steps:
greeting: "Xin chào %{name},"
intro: "Chúng tôi đã hoàn tất phân tích tài liệu PDF bạn đã tải lên %{product}."
document_type_label: Loại tài liệu
summary_label: Tóm tắt AI
transactions_note: Tài liệu này có vẻ chứa các giao dịch. Bạn có thể trích xuất và xem xét chúng ngay bây giờ.
document_stored_note: Tài liệu này đã được lưu trữ để bạn tham khảo. Nó có thể được sử dụng để cung cấp ngữ cảnh trong các cuộc trò chuyện AI trong tương lai.
next_steps_label: Tiếp theo là gì?
next_steps_intro: "Bạn có một số lựa chọn:"
option_extract_transactions: Trích xuất giao dịch từ sao kê này
option_keep_reference: Giữ tài liệu này để tham khảo trong các cuộc trò chuyện AI tương lai
option_delete: Xóa bản nhập này nếu bạn không còn cần nó nữa
view_import_button: Xem chi tiết nhập dữ liệu
footer_note: Đây là tin nhắn tự động. Vui lòng không trả lời trực tiếp email này.

View File

@@ -0,0 +1,21 @@
---
vi:
pending_duplicate_merges:
create:
no_posted_selected: Vui lòng chọn một giao dịch đã đăng để hợp nhất
invalid_transaction: Giao dịch được chọn để hợp nhất không hợp lệ
merge_success: Giao dịch chờ xử lý đã được hợp nhất với giao dịch đã đăng
merge_failed: Không thể hợp nhất giao dịch
set_transaction:
pending_only: Tính năng này chỉ khả dụng cho các giao dịch đang chờ xử lý
new:
title: Hợp nhất với giao dịch đã đăng
warning_title: Hợp nhất thủ công trùng lặp
warning_description: Sử dụng tính năng này để hợp nhất thủ công giao dịch đang chờ xử lý với phiên bản đã đăng của nó. Thao tác này sẽ xóa giao dịch đang chờ xử lý và chỉ giữ lại giao dịch đã đăng.
pending_transaction: Giao dịch đang chờ xử lý
select_posted: Chọn giao dịch đã đăng để hợp nhất
showing_range: "Đang hiển thị %{start} - %{end}"
previous: "← 10 trước"
next: "10 tiếp theo →"
no_candidates: Không tìm thấy giao dịch đã đăng nào trong tài khoản này.
submit_button: Hợp nhất giao dịch

View File

@@ -0,0 +1,34 @@
---
vi:
plaid_items:
create:
success: Tài khoản đã được liên kết thành công. Vui lòng chờ các tài khoản đồng bộ.
destroy:
success: Các tài khoản đã được lên lịch xóa.
plaid_item:
add_new: Thêm kết nối mới
confirm_accept: Xóa tổ chức tài chính
confirm_body: Thao tác này sẽ xóa vĩnh viễn tất cả tài khoản trong nhóm này và tất cả dữ liệu liên quan.
confirm_title: Xóa tổ chức tài chính?
connection_lost: Mất kết nối
connection_lost_description: Kết nối này không còn hợp lệ. Bạn cần xóa kết nối này và thêm lại để tiếp tục đồng bộ dữ liệu.
delete: Xóa
deletion_in_progress: (đang xóa...)
error: Đã xảy ra lỗi khi đồng bộ dữ liệu
no_accounts_description: Chúng tôi không thể tải bất kỳ tài khoản nào từ tổ chức tài chính này.
no_accounts_title: Không tìm thấy tài khoản
requires_update: Kết nối lại
status: Đồng bộ lần cuối %{timestamp} trước
status_never: Cần đồng bộ dữ liệu
syncing: Đang đồng bộ...
update: Cập nhật
select_existing_account:
no_available_accounts: Không có tài khoản Plaid nào để liên kết. Vui lòng kết nối tài khoản Plaid mới trước.
title: "Liên kết %{account_name} với Plaid"
description: Chọn tài khoản Plaid để liên kết với tài khoản hiện có của bạn
cancel: Hủy
link_account: Liên kết tài khoản
link_existing_account:
invalid_account: Tài khoản Plaid được chọn không hợp lệ
already_linked: Tài khoản Plaid này đã được liên kết
success: Tài khoản đã được liên kết thành công với Plaid

View File

@@ -0,0 +1,4 @@
---
vi:
preview:
not_enabled: Tính năng này đang ở chế độ xem trước. Bật tính năng xem trước trong Cài đặt → Tùy chọn để dùng thử.

View File

@@ -0,0 +1,89 @@
---
vi:
properties:
edit:
edit: Chỉnh sửa %{account}
form:
address_line1: Địa chỉ đường phố
address_line1_placeholder: 123 Main St
area: Diện tích sử dụng
area_placeholder: '2000'
area_unit: Đơn vị đo lường
country: Quốc gia
country_placeholder: US
locality: Thành phố
locality_placeholder: San Francisco
none: Không có
postal_code: Mã bưu điện
postal_code_placeholder: '94105'
region: Tỉnh/Bang
region_placeholder: CA
subtype_prompt: Chọn loại bất động sản
year_built: Năm xây dựng
year_built_placeholder: '2000'
new:
title: Nhập bất động sản thủ công
next: "Tiếp theo"
address:
title: "Nhập bất động sản thủ công"
address_line1_label: "Địa chỉ dòng 1"
address_line1_placeholder: "123 Main Street"
city_label: "Thành phố"
city_placeholder: "San Francisco"
state_region_label: "Tỉnh/Bang"
state_region_placeholder: "CA"
postal_code_label: "Mã bưu điện"
postal_code_placeholder: "12345"
country_label: "Quốc gia"
country_placeholder: "USA"
save: "Lưu"
balances:
title: "Nhập bất động sản thủ công"
market_value_label: "Giá trị thị trường ước tính"
market_value_tooltip: "Giá trị thị trường ước tính của bất động sản. Con số này thường có thể tìm thấy trên các trang như Zillow hoặc Redfin và không bao giờ là con số chính xác."
save: "Lưu"
next: "Tiếp theo"
overview_fields:
name_label: "Tên"
name_placeholder: "Nhà nghỉ dưỡng"
subtype_prompt: "Chọn loại"
property_type_label: "Loại bất động sản"
year_built_label: "Năm xây dựng (tùy chọn)"
year_built_placeholder: "1990"
area_label: "Diện tích (tùy chọn)"
area_placeholder: "1200"
square_feet: "Feet vuông"
square_meters: "Mét vuông"
area_unit_label: "Đơn vị diện tích"
overview:
living_area: Diện tích sử dụng
market_value: Giá trị thị trường
purchase_price: Giá mua
trend: Xu hướng
unknown: Không xác định
year_built: Năm xây dựng
tabs:
overview:
living_area: Diện tích sử dụng
market_value: Giá trị thị trường
purchase_price: Giá mua
trend: Xu hướng
unknown: Không xác định
year_built: Năm xây dựng
edit_account_details: "Chỉnh sửa thông tin tài khoản"
subtypes:
apartment:
short: Căn hộ
long: Căn hộ
plot:
short: Lô đất
long: Lô đất / Đất đai
commercial:
short: Thương mại
long: Bất động sản thương mại
rented:
short: Cho thuê
long: Bất động sản cho thuê
agri_land:
short: Đất nông nghiệp
long: Đất nông nghiệp

View File

@@ -0,0 +1,56 @@
---
vi:
recurring_transactions:
title: Giao dịch định kỳ
upcoming: Giao dịch định kỳ sắp tới
projected: Dự kiến
recurring: Định kỳ
expected_today: "Dự kiến hôm nay"
expected_in:
one: "Dự kiến sau %{count} ngày"
other: "Dự kiến sau %{count} ngày"
day_of_month: Ngày %{day} hàng tháng
identify_patterns: Xác định mẫu
cleanup_stale: Dọn dẹp mẫu cũ
settings:
enable_label: Bật giao dịch định kỳ
enable_description: Tự động phát hiện mẫu giao dịch định kỳ và hiển thị các giao dịch dự kiến sắp tới.
settings_updated: Đã cập nhật cài đặt giao dịch định kỳ
info:
title: Tự động phát hiện mẫu
manual_description: Bạn có thể tự tay xác định mẫu hoặc dọn dẹp giao dịch định kỳ cũ bằng các nút ở trên.
automatic_description: "Nhận dạng tự động cũng chạy sau:"
triggers:
- Nhập CSV hoàn tất (giao dịch, giao dịch chứng khoán, tài khoản, v.v.)
- Bất kỳ lần đồng bộ nhà cung cấp nào hoàn tất (Plaid, SimpleFIN, v.v.)
identified: Đã xác định %{count} mẫu giao dịch định kỳ
cleaned_up: Đã dọn dẹp %{count} giao dịch định kỳ cũ
marked_inactive: Giao dịch định kỳ đã được đánh dấu không hoạt động
marked_active: Giao dịch định kỳ đã được đánh dấu hoạt động
deleted: Đã xóa giao dịch định kỳ
confirm_delete: Bạn có chắc muốn xóa giao dịch định kỳ này?
marked_as_recurring: Giao dịch đã được đánh dấu là định kỳ
already_exists: Đã tồn tại giao dịch định kỳ thủ công cho mẫu này
creation_failed: Không thể tạo giao dịch định kỳ. Vui lòng kiểm tra thông tin giao dịch và thử lại.
unexpected_error: Đã xảy ra lỗi không mong muốn khi tạo giao dịch định kỳ
amount_range: "Khoảng: %{min} đến %{max}"
empty:
title: Không tìm thấy giao dịch định kỳ
description: Nhấn "Xác định mẫu" để tự động phát hiện giao dịch định kỳ từ lịch sử giao dịch.
table:
merchant: Tên
amount: Số tiền
expected_day: Ngày dự kiến
next_date: Ngày tiếp theo
last_occurrence: Lần xuất hiện gần nhất
status: Trạng thái
actions: Hành động
status:
active: Hoạt động
inactive: Không hoạt động
badges:
manual: Thủ công
transfer_marked_as_recurring: Chuyển khoản đã được đánh dấu là định kỳ
transfer_already_exists: Đã tồn tại chuyển khoản định kỳ cho cặp tài khoản này
transfer_creation_failed: Không thể tạo chuyển khoản định kỳ. Vui lòng kiểm tra thông tin và thử lại.
transfer_feature_disabled: Chuyển khoản định kỳ đã bị tắt cho hộ gia đình này

View File

@@ -0,0 +1,31 @@
---
vi:
helpers:
label:
user:
invite_code: Mã mời
submit:
user:
create: Tiếp tục
registrations:
closed: Đăng ký hiện đang đóng.
create:
failure: Đã xảy ra lỗi khi đăng ký.
invalid_invite_code: Mã mời không hợp lệ, vui lòng thử lại.
success: Bạn đã đăng ký thành công.
new:
invitation_message: "%{inviter} đã mời bạn tham gia với vai trò %{role}"
join_family_title: Tham gia %{family} %{moniker}
role_admin: quản trị viên
role_guest: khách
role_member: thành viên
submit: Tạo tài khoản
title: Tạo tài khoản của bạn
welcome_body: Để bắt đầu, bạn cần đăng ký tài khoản mới. Sau đó bạn có thể cấu hình các cài đặt bổ sung trong ứng dụng.
welcome_title: Chào mừng đến với %{product_name} tự lưu trữ!
password_placeholder: Nhập mật khẩu của bạn
password_requirements:
length: Tối thiểu 8 ký tự
case: Chữ hoa và chữ thường
number: Một chữ số (0-9)
special: "Một ký tự đặc biệt (!, @, #, $, %, v.v.)"

View File

@@ -0,0 +1,242 @@
---
vi:
reports:
index:
title: Báo cáo
subtitle: Thông tin chi tiết toàn diện về sức khỏe tài chính của bạn
export: Xuất CSV
print_report: In báo cáo
drag_to_reorder: "Kéo để sắp xếp lại phần"
toggle_section: "Bật/tắt hiển thị phần"
periods:
monthly: Hàng tháng
quarterly: Hàng quý
ytd: Từ đầu năm
last_6_months: 6 Tháng Qua
custom: Khoảng tùy chỉnh
date_range:
from: Từ
to: Đến
showing_period: "Hiển thị dữ liệu từ %{start} đến %{end}"
previous_period: "Kỳ trước"
next_period: "Kỳ tiếp"
today: "Hôm nay"
period_label:
quarterly: "Q%{quarter} %{year}"
ytd: "Từ đầu năm %{year}"
past_year: "%{year}"
last_6_months: "%{start} %{end}"
period_picker:
quarter: "Q%{quarter} %{year}"
ytd: "Từ đầu năm %{year}"
previous_year: "Năm trước"
next_year: "Năm tiếp"
previous_decade: "Thập kỷ trước"
next_decade: "Thập kỷ tiếp"
invalid_date_range: "Ngày kết thúc không thể trước ngày bắt đầu. Các ngày đã được hoán đổi."
summary:
total_income: Tổng thu nhập
total_expenses: Tổng chi tiêu
net_savings: Tiết kiệm thuần
budget_performance: Hiệu suất ngân sách
vs_previous: so với kỳ trước
income_minus_expenses: Thu nhập trừ chi tiêu
of_budget_used: ngân sách đã dùng
no_budget_data: Không có dữ liệu ngân sách cho kỳ này
budget_performance:
title: Hiệu suất ngân sách
spent: Đã chi
budgeted: Ngân sách
remaining: Còn lại
over_by: Vượt
shared: chia sẻ
suggested_daily: "%{amount} đề xuất mỗi ngày cho %{days} ngày còn lại"
no_budgets: Chưa thiết lập danh mục ngân sách tháng này
status:
good: Đúng kế hoạch
warning: Gần giới hạn
over: Vượt ngân sách
trends:
title: Xu hướng & Thông tin
monthly_breakdown: Phân tích hàng tháng
month: Tháng
income: Thu nhập
expenses: Chi tiêu
net: Thuần
savings_rate: Tỷ lệ tiết kiệm
current: hiện tại
avg_monthly_income: Thu nhập tb hàng tháng
avg_monthly_expenses: Chi tiêu tb hàng tháng
avg_monthly_savings: Tiết kiệm tb hàng tháng
no_data: Không có dữ liệu xu hướng
spending_patterns: Mô hình chi tiêu
weekday_spending: Chi tiêu ngày thường
weekend_spending: Chi tiêu cuối tuần
total: Tổng
avg_per_transaction: Tb mỗi giao dịch
transactions: Giao dịch
insight_title: Thông tin
insight_higher_weekend: "Bạn chi %{percent}% nhiều hơn mỗi giao dịch vào cuối tuần so với ngày thường"
insight_higher_weekday: "Bạn chi %{percent}% nhiều hơn mỗi giao dịch vào ngày thường so với cuối tuần"
insight_similar: "Chi tiêu mỗi giao dịch của bạn tương tự vào ngày thường và cuối tuần"
no_spending_data: Không có dữ liệu chi tiêu cho kỳ này
empty_state:
title: Không có dữ liệu
description: Bắt đầu theo dõi tài chính bằng cách thêm giao dịch hoặc kết nối tài khoản để xem báo cáo toàn diện
add_transaction: Thêm giao dịch
add_account: Thêm tài khoản
transactions_breakdown:
title: Phân tích hoạt động
no_transactions: Không tìm thấy hoạt động cho kỳ và bộ lọc đã chọn
filters:
title: Bộ lọc
category: Danh mục
account: Tài khoản
tag: Nhãn
amount_min: Số tiền tối thiểu
amount_max: Số tiền tối đa
date_range: Khoảng ngày
all_categories: Tất cả danh mục
all_accounts: Tất cả tài khoản
all_tags: Tất cả nhãn
apply: Áp dụng bộ lọc
clear: Xóa bộ lọc
sort:
label: Sắp xếp theo
date_desc: Ngày (Mới nhất)
amount_desc: Số tiền (Cao đến Thấp)
amount_asc: Số tiền (Thấp đến Cao)
export:
label: Xuất
csv: CSV
excel: Excel
pdf: PDF
google_sheets: Mở trong Google Sheets
table:
category: Danh mục
amount: Số tiền
type: Loại
expense: Chi tiêu
income: Thu nhập
uncategorized: Chưa phân loại
entries:
one: "%{count} mục"
other: "%{count} mục"
percentage: "% Tổng"
pagination:
showing:
one: Hiển thị %{count} mục
other: Hiển thị %{count} mục
previous: Trước
next: Tiếp
net_worth:
title: Tài sản ròng
current_net_worth: Tài sản ròng hiện tại
period_change: Thay đổi trong kỳ
assets_vs_liabilities: Tài sản vs Nợ
total_assets: Tài sản
total_liabilities: Nợ
no_assets: Không có tài sản
no_liabilities: Không có nợ
investment_performance:
title: Hiệu suất đầu tư
portfolio_value: Giá trị danh mục
total_return: Tổng lợi nhuận
contributions: Đóng góp trong kỳ
withdrawals: Rút tiền trong kỳ
top_holdings: Danh mục nắm giữ hàng đầu
holding: Nắm giữ
weight: Tỷ trọng
value: Giá trị
return: Lợi nhuận
accounts: Tài khoản đầu tư
gains_by_tax_treatment: Lợi nhuận theo loại thuế
unrealized_gains: Lợi nhuận chưa thực hiện
realized_gains: Lợi nhuận đã thực hiện
total_gains: Tổng lợi nhuận
taxable_realized_note: Các khoản lợi nhuận này có thể phải chịu thuế
no_data: "-"
view_details: Xem chi tiết
holdings_count:
one: "%{count} nắm giữ"
other: "%{count} nắm giữ"
sells_count:
one: "%{count} lần bán"
other: "%{count} lần bán"
holdings: Danh mục nắm giữ
sell_trades: Giao dịch bán
and_more: "+%{count} khác"
investment_flows:
title: Dòng tiền đầu tư
description: Theo dõi tiền chảy vào và ra khỏi tài khoản đầu tư qua đóng góp và rút tiền.
contributions: Đóng góp
contributions_description: Tiền thêm vào đầu tư
withdrawals: Rút tiền
withdrawals_description: Tiền rút từ đầu tư
net_flow: Dòng tiền thuần
net_flow_description: Tổng thay đổi thuần
google_sheets_instructions:
title_with_key: "✅ Sao chép URL cho Google Sheets"
title_no_key: "⚠️ Cần khóa API"
ready: URL CSV (kèm khóa API) đã sẵn sàng.
steps: "Để nhập vào Google Sheets:\n1. Tạo Google Sheet mới\n2. Trong ô A1, nhập công thức bên dưới\n3. Nhấn Enter"
security_warning: "URL này chứa khóa API của bạn. Hãy giữ bí mật!"
need_key: Để nhập dữ liệu vào Google Sheets, bạn cần khóa API.
step1: "Vào Cài đặt → Khóa API"
step2: "Tạo khóa API mới với quyền \"đọc\""
step3: Sao chép khóa API
step4: "Thêm vào URL như sau: ?api_key=YOUR_KEY"
example: Ví dụ
then_use: Sau đó dùng URL đầy đủ với =IMPORTDATA() trong Google Sheets.
open_sheets: Mở Google Sheets
go_to_api_keys: Đến Khóa API
close: Đã hiểu
print:
document_title: Báo cáo tài chính
title: Báo cáo tài chính
generated_on: "Tạo ngày %{date}"
summary:
title: Tóm tắt
income: Thu nhập
expenses: Chi tiêu
net_savings: Tiết kiệm thuần
budget: Ngân sách
vs_prior: "%{percent}% so với kỳ trước"
of_income: "%{percent}% thu nhập"
used: đã dùng
net_worth:
title: Tài sản ròng
current_balance: Số dư hiện tại
this_period: kỳ này
assets: Tài sản
liabilities: Nợ
no_liabilities: Không có nợ
trends:
title: Xu hướng hàng tháng
month: Tháng
income: Thu nhập
expenses: Chi tiêu
net: Thuần
savings_rate: Tỷ lệ tiết kiệm
average: Trung bình
current_month_note: "* Tháng hiện tại (dữ liệu một phần)"
investments:
title: Đầu tư
portfolio_value: Giá trị danh mục
total_return: Tổng lợi nhuận
contributions: Đóng góp
withdrawals: Rút tiền
this_period: kỳ này
top_holdings: Danh mục nắm giữ hàng đầu
holding: Nắm giữ
weight: Tỷ trọng
value: Giá trị
return: Lợi nhuận
spending:
title: Chi tiêu theo danh mục
income: Thu nhập
expenses: Chi tiêu
category: Danh mục
amount: Số tiền
percent: "%"
more_categories: "+ %{count} danh mục khác"

View File

@@ -0,0 +1,115 @@
---
vi:
rules:
no_action: Không có hành động
no_condition: Không có điều kiện
rule:
edit: Chỉnh sửa
re_apply_rule: Áp dụng lại quy tắc
delete: Xóa
then: THÌ
and_more_conditions:
one: và 1 điều kiện nữa
other: và %{count} điều kiện nữa
and_more_actions:
one: và 1 hành động nữa
other: và %{count} hành động nữa
action_label_to: "%{label} thành %{value}"
all_past_and_future: Tất cả %{resource} trong quá khứ và tương lai
on_or_after: "%{resource} từ ngày %{date} trở đi"
form:
rule_name_label: Tên quy tắc (tùy chọn)
rule_name_placeholder: Nhập tên cho quy tắc này
add_condition: Thêm điều kiện
add_condition_group: Thêm nhóm điều kiện
add_action: Thêm hành động
all_past_and_future: Tất cả %{resource} trong quá khứ và tương lai
starting_from: Bắt đầu từ
then: THÌ
index:
page_title: Quy tắc
delete_all_rules: Xóa tất cả quy tắc
new_rule: Quy tắc mới
ai_cost_warning: Các hành động quy tắc sử dụng AI sẽ tốn chi phí. Hãy lọc càng hẹp càng tốt để tránh chi phí không cần thiết.
rules_heading: Quy tắc
sort_by: "Sắp xếp theo:"
sort_name: Tên
sort_updated_at: Ngày cập nhật
toggle_sort_direction: Đổi chiều sắp xếp
no_rules_title: Chưa có quy tắc
no_rules_description: Thiết lập quy tắc để thực hiện hành động trên giao dịch và dữ liệu khác mỗi lần đồng bộ tài khoản.
confirm:
title: Xác nhận thay đổi
title_with_name: "Xác nhận thay đổi cho \"%{name}\""
apply_notice_html: "Bạn sắp áp dụng quy tắc này cho <span class=\"text-primary font-medium\">%{count} %{resource}</span> đáp ứng tiêu chí quy tắc đã chỉ định. Vui lòng xác nhận nếu muốn tiếp tục."
ai_cost_title: Ước tính chi phí AI
ai_cost_with_estimate_html: "Sẽ dùng AI để phân loại %{count} giao dịch. Chi phí ước tính: <span class=\"font-semibold\">~$%{cost}</span>"
ai_cost_no_estimate_html: "Sẽ dùng AI để phân loại %{count} giao dịch."
cost_unavailable_model: "Không thể ước tính chi phí cho mô hình \"%{model}\"."
cost_unavailable_no_provider: Không thể ước tính chi phí (chưa cấu hình nhà cung cấp LLM).
cost_warning: Bạn có thể phát sinh chi phí, hãy kiểm tra với nhà cung cấp mô hình để biết giá mới nhất.
view_usage_history: Xem lịch sử sử dụng
confirm_changes: Xác nhận thay đổi
actions:
value_placeholder: Nhập một giá trị
update:
success: Đã cập nhật quy tắc
destroy:
success: Đã xóa quy tắc
destroy_all:
success: Đã xóa tất cả quy tắc
apply_all:
button: Áp dụng tất cả
confirm_title: Áp dụng tất cả quy tắc
confirm_message: Bạn sắp áp dụng %{count} quy tắc ảnh hưởng đến %{transactions} giao dịch duy nhất. Vui lòng xác nhận nếu muốn tiếp tục.
confirm_button: Xác nhận và áp dụng tất cả
success: Tất cả quy tắc đã được đưa vào hàng chờ thực thi
ai_cost_title: Ước tính chi phí AI
ai_cost_message: Sẽ dùng AI để phân loại tối đa %{transactions} giao dịch.
estimated_cost: "Chi phí ước tính: ~$%{cost}"
cost_unavailable_model: Không thể ước tính chi phí cho mô hình "%{model}".
cost_unavailable_no_provider: Không thể ước tính chi phí (chưa cấu hình nhà cung cấp LLM).
cost_warning: Bạn có thể phát sinh chi phí, hãy kiểm tra với nhà cung cấp mô hình để biết giá mới nhất.
view_usage: Xem lịch sử sử dụng
recent_runs:
title: Lần chạy gần đây
description: Xem lịch sử thực thi quy tắc bao gồm trạng thái thành công/thất bại và số lượng giao dịch.
unnamed_rule: Quy tắc chưa đặt tên
columns:
date_time: Ngày/Giờ
execution_type: Loại
status: Trạng thái
rule_name: Tên quy tắc
transactions_counts:
queued: Đang chờ
processed: Đã xử lý
modified: Đã sửa đổi
blocked: Bị chặn
execution_types:
manual: Thủ công
scheduled: Đã lên lịch
statuses:
pending: Đang chờ
success: Thành công
failed: Thất bại
clear_ai_cache:
button: Đặt lại bộ nhớ đệm AI
confirm_title: Đặt lại bộ nhớ đệm AI?
confirm_body: Bạn có chắc muốn đặt lại bộ nhớ đệm AI? Điều này cho phép các quy tắc AI xử lý lại tất cả giao dịch và có thể phát sinh thêm chi phí API.
confirm_button: Đặt lại bộ nhớ đệm
success: Bộ nhớ đệm AI đang được xóa. Quá trình này có thể mất vài giây.
condition_filters:
transaction_type:
income: Thu nhập
expense: Chi tiêu
transfer: Chuyển khoản
equal_to: Bằng
rule:
conditions:
condition_group:
and_prefix:
match: khớp
all: tất cả
any: bất kỳ
of_the_following_conditions: trong các điều kiện sau
add_condition: Thêm điều kiện

View File

@@ -0,0 +1,14 @@
---
vi:
securities:
combobox:
display: "%{symbol} - %{name} (%{exchange})"
exchange_label: "%{symbol} (%{exchange})"
providers:
twelve_data: Twelve Data
yahoo_finance: Yahoo Finance
tiingo: Tiingo
eodhd: EODHD
alpha_vantage: Alpha Vantage
mfapi: MFAPI.in
binance_public: Binance

View File

@@ -0,0 +1,35 @@
---
vi:
sessions:
create:
invalid_credentials: Email hoặc mật khẩu không đúng.
local_login_disabled: Đăng nhập bằng mật khẩu nội bộ đã bị tắt. Vui lòng sử dụng đăng nhập một lần (SSO).
destroy:
logout_successful: Bạn đã đăng xuất thành công.
post_logout:
logout_successful: Bạn đã đăng xuất thành công.
openid_connect:
account_linked: "Tài khoản đã được liên kết thành công với %{provider}"
failed: Không thể xác thực qua OpenID Connect.
failure:
failed: Không thể xác thực.
sso_provider_unavailable: "Nhà cung cấp SSO hiện không khả dụng. Vui lòng thử lại sau hoặc liên hệ quản trị viên."
sso_invalid_response: "Nhận được phản hồi không hợp lệ từ nhà cung cấp SSO. Vui lòng thử lại."
sso_failed: "Xác thực SSO thất bại. Vui lòng thử lại."
mobile_sso_start:
redirecting_html: "Đang chuyển hướng để đăng nhập... <a href=\"%{url}\">Nhấn vào đây</a> nếu không được chuyển hướng."
new:
email: Địa chỉ email
email_placeholder: ban@example.com
forgot_password: Quên mật khẩu?
password: Mật khẩu
submit: Đăng nhập
title: Sure
password_placeholder: Nhập mật khẩu của bạn
openid_connect: Đăng nhập với OpenID Connect
oidc: Đăng nhập với OpenID Connect
google_auth_connect: Đăng nhập với Google
local_login_admin_only: Đăng nhập nội bộ chỉ dành cho quản trị viên.
no_auth_methods_enabled: Hiện chưa có phương thức xác thực nào được bật. Vui lòng liên hệ quản trị viên.
demo_banner_title: "Chế độ Demo đang hoạt động"
demo_banner_message: "Đây là môi trường minh họa. Thông tin đăng nhập đã được điền sẵn để tiện sử dụng. Vui lòng không nhập thông tin thật hoặc nhạy cảm."

View File

@@ -0,0 +1,115 @@
---
vi:
settings:
api_keys_controller:
success: "Khóa API của bạn đã được tạo thành công"
revoked_successfully: "Khóa API đã được thu hồi thành công"
revoke_failed: "Thu hồi khóa API thất bại"
scope_descriptions:
read_accounts: "Xem tài khoản"
read_transactions: "Xem giao dịch"
read_balances: "Xem số dư"
write_transactions: "Tạo giao dịch"
api_keys:
create:
success: "Khóa API của bạn đã được tạo thành công"
destroy:
not_found: "Không tìm thấy khóa API"
cannot_revoke: "Không thể thu hồi khóa API này"
revoked_successfully: "Khóa API đã được thu hồi thành công"
revoke_failed: "Thu hồi khóa API thất bại"
show:
title: "Quản lý khóa API"
no_api_key:
title: "Khóa API"
heading: "Truy cập dữ liệu tài khoản theo chương trình"
description: "Nhận quyền truy cập theo chương trình vào dữ liệu Sure của bạn với khóa API bảo mật."
what_you_can_do: "Những gì bạn có thể làm với API:"
feature_1: "Truy cập dữ liệu tài khoản theo chương trình"
feature_2: "Xây dựng tích hợp và ứng dụng tùy chỉnh"
feature_3: "Tự động truy xuất và phân tích dữ liệu"
security_note_title: "Bảo mật là ưu tiên hàng đầu"
security_note: "Khóa API của bạn sẽ có quyền hạn chế dựa trên các phạm vi bạn chọn. Bạn chỉ có thể có một khóa API đang hoạt động tại một thời điểm."
create_api_key: "Tạo khóa API"
newly_created:
page_title: "Khóa API đã được tạo thành công"
heading: "Khóa API đã được tạo thành công!"
key_ready: "Khóa API mới \"%{name}\" của bạn đã được tạo và sẵn sàng sử dụng."
your_api_key: "Khóa API của bạn"
copy_store_securely: "Sao chép và lưu trữ khóa này an toàn. Bạn sẽ cần nó để xác thực các yêu cầu API."
copy_api_key: "Sao chép khóa API"
how_to_use: "Cách sử dụng khóa API của bạn"
continue: "Tiếp tục đến Cài đặt khóa API"
current_api_key:
title: "Khóa API của bạn"
description: "Khóa API đang hoạt động của bạn sẵn sàng sử dụng. Giữ nó an toàn và không bao giờ chia sẻ công khai."
active: "Đang hoạt động"
key_name: "Tên"
created_at: "Đã tạo"
created_ago: "Tạo %{time} trước"
last_used: "Lần cuối sử dụng"
last_used_ago: "Sử dụng lần cuối %{time} trước"
expires: "Hết hạn"
ago: "trước"
never_used: "Chưa bao giờ sử dụng"
never_expires: "Không bao giờ hết hạn"
permissions: "Quyền"
scope_read_only: "Chỉ đọc"
scope_read_write: "Đọc/Ghi"
copy_api_key: "Sao chép khóa API"
copy_store_securely: "Sao chép và lưu trữ khóa này an toàn. Bạn sẽ cần nó để xác thực các yêu cầu API."
usage_instructions_title: "Cách sử dụng khóa API của bạn"
usage_instructions: "Bao gồm khóa API của bạn trong tiêu đề X-Api-Key khi gửi yêu cầu đến API %{product_name}:"
regenerate_key: "Tạo khóa mới"
revoke_key: "Thu hồi khóa"
revoke_confirmation: "Bạn có chắc chắn muốn thu hồi khóa API này? Hành động này không thể hoàn tác và sẽ ngay lập tức vô hiệu hóa tất cả ứng dụng đang sử dụng khóa này."
new:
title: "Tạo khóa API"
create_new_api_key: "Tạo khóa API mới"
subtitle: "Tạo khóa API mới để truy cập dữ liệu Sure của bạn theo chương trình."
description: "Cấu hình khóa API mới với tên mô tả và quyền phù hợp."
name_label: "Tên khóa API"
name_placeholder: "ví dụ: Ứng dụng ngân sách, Trình theo dõi danh mục đầu tư"
name_help_text: "Chọn tên mô tả để giúp bạn xác định khóa này sau."
name_help: "Chọn tên mô tả để giúp bạn xác định mục đích của khóa này."
permissions_label: "Quyền"
permissions_help: "Chọn quyền mà khóa API này nên có:"
scope_read_only: "Chỉ đọc"
scope_read_only_description: "Xem tài khoản, giao dịch và số dư của bạn"
scope_read_write: "Đọc/Ghi"
scope_read_write_description: "Xem dữ liệu và tạo giao dịch mới"
scope_details:
read_accounts: "Xem thông tin tài khoản, số dư và dữ liệu cấp tài khoản"
read_transactions: "Xem dữ liệu giao dịch, danh mục và chi tiết giao dịch"
read_balances: "Xem dữ liệu số dư lịch sử và xu hướng giá trị tài khoản"
write_transactions: "Tạo và cập nhật bản ghi giao dịch (sắp ra mắt)"
security_warning_title: "Cảnh báo bảo mật"
security_warning_body: "Khóa API của bạn sẽ chỉ được hiển thị một lần sau khi tạo. Đảm bảo sao chép và lưu trữ an toàn. Bất kỳ ai có quyền truy cập vào khóa này đều có thể truy cập dữ liệu của bạn theo quyền bạn chọn."
security_warning: "Khóa API của bạn chỉ được hiển thị một lần sau khi tạo. Lưu trữ an toàn và không bao giờ chia sẻ công khai. Nếu mất, bạn cần tạo khóa mới."
create_key: "Tạo khóa API"
cancel: "Hủy"
save_api_key: "Lưu khóa API"
created:
page_title: "Khóa API đã được tạo"
title: "Khóa API đã được tạo"
success_title: "Khóa API đã được tạo thành công"
success_description: "Khóa API mới của bạn đã được tạo thành công."
key_ready: "Khóa API mới \"%{name}\" của bạn đã được tạo và sẵn sàng sử dụng."
your_api_key: "Khóa API của bạn"
copy_store_securely: "Sao chép và lưu trữ khóa này an toàn. Bạn sẽ cần nó để xác thực các yêu cầu API."
key_details_title: "Chi tiết khóa"
key_name_label: "Tên:"
permissions_label: "Quyền:"
created_label: "Đã tạo:"
security_note_title: "Lưu ý bảo mật quan trọng"
security_note_body: "Đây là lần duy nhất khóa API của bạn được hiển thị. Đảm bảo sao chép ngay và lưu trữ an toàn. Nếu mất khóa này, bạn cần tạo khóa mới."
usage_instructions_title: "Cách sử dụng khóa API của bạn"
key_name: "Tên"
permissions: "Quyền"
critical_warning_title: "Quan trọng: Lưu khóa API ngay bây giờ"
critical_warning_1: "Đây là lần duy nhất bạn thấy khóa API ở dạng văn bản thuần túy."
critical_warning_2: "Sao chép và lưu trữ an toàn trong trình quản lý mật khẩu hoặc ứng dụng của bạn."
critical_warning_3: "Nếu mất khóa này, bạn cần tạo khóa mới."
usage_instructions: "Sử dụng khóa API bằng cách bao gồm nó trong tiêu đề X-Api-Key:"
copy_key: "Sao chép khóa API"
continue: "Tiếp tục đến Cài đặt khóa API"

View File

@@ -0,0 +1,194 @@
---
vi:
settings:
hostings:
invite_code_settings:
description: Kiểm soát cách người mới đăng ký cho phiên bản %{product} của bạn.
email_confirmation_description: Khi bật, người dùng phải xác nhận địa chỉ email khi thay đổi.
email_confirmation_title: Yêu cầu xác nhận email
default_family_title: Gia đình mặc định cho người dùng mới
default_family_description: "Đặt người dùng mới vào gia đình/nhóm này chỉ khi họ không có lời mời."
default_family_none: Không có (tạo gia đình mới)
generate_tokens: Tạo mã mới
generated_tokens: Mã đã tạo
title: Giới thiệu
states:
open: Mở
closed: Đóng
invite_only: Chỉ theo lời mời
show:
general: Cài đặt chung
ai_assistant: Trợ lý AI
financial_data_providers: Nhà cung cấp dữ liệu tài chính
sync_settings: Cài đặt đồng bộ
invites: Mã mời
title: Tự lưu trữ
danger_zone: Vùng nguy hiểm
clear_cache: Xóa bộ nhớ đệm dữ liệu
clear_cache_warning: Xóa bộ nhớ đệm dữ liệu sẽ xóa tất cả tỷ giá hối đoái, giá chứng khoán, số dư tài khoản và dữ liệu khác. Thao tác này sẽ không xóa tài khoản, giao dịch, danh mục hoặc dữ liệu người dùng khác.
confirm_clear_cache:
title: Xóa bộ nhớ đệm dữ liệu?
body: Bạn có chắc chắn muốn xóa bộ nhớ đệm dữ liệu? Thao tác này sẽ xóa tất cả tỷ giá hối đoái, giá chứng khoán, số dư tài khoản và dữ liệu khác. Hành động này không thể hoàn tác.
provider_selection:
exchange_rate_title: Nhà cung cấp tỷ giá hối đoái
exchange_rate_description: Chọn một nhà cung cấp để lấy tỷ giá hối đoái tiền tệ.
exchange_rate_provider_label: Nhà cung cấp tỷ giá hối đoái
securities_title: Nhà cung cấp chứng khoán
securities_description: Bật một hoặc nhiều nhà cung cấp để lấy giá cổ phiếu, ETF và quỹ tương hỗ. Khi tìm kiếm, tất cả nhà cung cấp được bật đều được truy vấn và kết quả được hợp nhất.
env_configured_message: Lựa chọn nhà cung cấp bị tắt vì các biến môi trường đã được đặt. Để bật lựa chọn tại đây, hãy xóa các biến môi trường này khỏi cấu hình của bạn.
twelve_data_hint: yêu cầu khóa API, 800 tín dụng/ngày
yahoo_finance_hint: miễn phí, không cần khóa API
requires_api_key: yêu cầu khóa API
requires_api_key_eodhd: yêu cầu khóa API, giới hạn 20 lần gọi/ngày
requires_api_key_alpha_vantage: yêu cầu khóa API, giới hạn 25 lần gọi/ngày
mfapi_hint: miễn phí, không cần khóa API -- chỉ quỹ tương hỗ Ấn Độ
binance_public_hint: miễn phí, không cần khóa API -- chỉ tiền điện tử (BTC, ETH, v.v.)
providers:
twelve_data: Twelve Data
yahoo_finance: Yahoo Finance
tiingo: Tiingo
eodhd: EODHD
alpha_vantage: Alpha Vantage
mfapi: MFAPI.in
binance_public: Binance
assistant_settings:
title: Trợ lý AI
description: Chọn cách trợ lý trò chuyện phản hồi. Tích hợp sẵn sử dụng nhà cung cấp LLM đã cấu hình trực tiếp. Bên ngoài ủy thác cho tác nhân AI từ xa có thể gọi lại các công cụ tài chính của Sure qua MCP.
type_label: Loại trợ lý
type_builtin: Tích hợp sẵn (LLM trực tiếp)
type_external: Bên ngoài (tác nhân từ xa)
external_status: Endpoint trợ lý bên ngoài
external_configured: Đã cấu hình
external_not_configured: Chưa được cấu hình. Nhập URL và token bên dưới, hoặc đặt biến môi trường EXTERNAL_ASSISTANT_URL và EXTERNAL_ASSISTANT_TOKEN.
env_notice: "Loại trợ lý bị khóa ở '%{type}' qua biến môi trường ASSISTANT_TYPE."
env_configured_external: Đã cấu hình thành công qua biến môi trường.
url_label: URL endpoint
url_placeholder: "https://your-agent-host/v1/chat"
url_help: URL đầy đủ đến endpoint API của tác nhân. Nhà cung cấp tác nhân sẽ cung cấp cho bạn thông tin này.
token_label: Mã thông báo API
token_placeholder: Nhập mã thông báo từ nhà cung cấp tác nhân
token_help: Mã thông báo xác thực do tác nhân bên ngoài cung cấp. Được gửi dưới dạng Bearer token với mỗi yêu cầu.
agent_id_label: ID tác nhân (Tùy chọn)
agent_id_placeholder: "main (mặc định)"
agent_id_help: Định tuyến đến tác nhân cụ thể khi nhà cung cấp lưu trữ nhiều tác nhân. Để trống cho tác nhân mặc định.
disconnect_title: Kết nối bên ngoài
disconnect_description: Xóa kết nối trợ lý bên ngoài và chuyển về trợ lý tích hợp sẵn.
disconnect_button: Ngắt kết nối
confirm_disconnect:
title: Ngắt kết nối trợ lý bên ngoài?
body: Thao tác này sẽ xóa URL, token và ID tác nhân đã lưu, và chuyển về trợ lý tích hợp sẵn. Bạn có thể kết nối lại sau bằng cách nhập thông tin xác thực mới.
brand_fetch_settings:
description: Nhập Client ID do Brand Fetch cung cấp
env_configured_message: Bạn đã cấu hình thành công Client ID Brand Fetch qua biến môi trường BRAND_FETCH_CLIENT_ID.
show_details: "(hiển thị chi tiết)"
setup_step_1_html: 'Truy cập <a href="https://brandfetch.com/developers" target="_blank" rel="noopener noreferrer" class="underline">brandfetch.com</a> và tạo tài khoản nhà phát triển Brand Fetch miễn phí.'
setup_step_2_html: 'Đi đến trang <a href="https://developers.brandfetch.com/dashboard/logo-api" target="_blank" rel="noopener noreferrer" class="underline">Logo API</a>.'
setup_step_3: 'Nhấn biểu tượng mắt dưới phần "Your Client ID" để hiển thị Client ID và dán vào bên dưới.'
label: Client ID
placeholder: Nhập Client ID của bạn vào đây
title: Cài đặt Brand Fetch
high_res_label: Bật logo độ phân giải cao
high_res_description: Khi bật, logo sẽ được lấy ở độ phân giải 120x120 thay vì 40x40. Điều này cung cấp hình ảnh sắc nét hơn trên màn hình độ phân giải cao.
openai_settings:
description: Nhập token truy cập và tùy chọn cấu hình nhà cung cấp tương thích OpenAI tùy chỉnh
env_configured_message: Đã cấu hình thành công qua biến môi trường.
access_token_label: Token truy cập
access_token_placeholder: Nhập token truy cập của bạn vào đây
uri_base_label: URL cơ sở API (Tùy chọn)
uri_base_placeholder: "https://api.openai.com/v1 (mặc định)"
model_label: Mô hình (Tùy chọn)
model_placeholder: "gpt-4.1 (mặc định)"
json_mode_label: Chế độ JSON
json_mode_auto: Tự động (khuyến nghị)
json_mode_strict: Nghiêm ngặt (tốt nhất cho mô hình suy nghĩ)
json_mode_none: Không (tốt nhất cho mô hình tiêu chuẩn)
json_mode_json_object: Đối tượng JSON
json_mode_help: "Chế độ nghiêm ngặt hoạt động tốt nhất với mô hình suy nghĩ (qwen-thinking, deepseek-reasoner). Chế độ không hoạt động tốt nhất với mô hình tiêu chuẩn (llama, mistral, gpt-oss)."
budget_heading: Ngân sách token
budget_description: Áp dụng cho mọi lần gọi LLM — lịch sử trò chuyện, phân loại tự động, phát hiện nhà cung cấp và xử lý PDF. Mặc định được đặt thận trọng cho các mô hình cục bộ ngữ cảnh nhỏ. Tăng lên cho các mô hình đám mây với cửa sổ ngữ cảnh lớn hơn.
context_window_label: Cửa sổ ngữ cảnh (Tùy chọn)
context_window_help: "Tổng số token mô hình sẽ chấp nhận. Mặc định: 2048 — tăng lên 8192+ cho OpenAI đám mây hoặc mô hình cục bộ ngữ cảnh lớn."
max_response_tokens_label: Số token phản hồi tối đa (Tùy chọn)
max_response_tokens_help: "Token dành cho phản hồi của mô hình. Mặc định: 512. Giảm để dành chỗ cho lịch sử dài hơn."
max_items_per_call_label: Số mục tối đa mỗi lô (Tùy chọn)
max_items_per_call_help: "Giới hạn trên cho lô phân loại tự động / phát hiện nhà cung cấp. Mặc định: 25. Lô lớn hơn được tự động cắt để phù hợp với cửa sổ ngữ cảnh."
title: OpenAI
yahoo_finance_settings:
title: Yahoo Finance
description: Yahoo Finance cung cấp quyền truy cập miễn phí vào giá cổ phiếu, tỷ giá hối đoái và dữ liệu tài chính mà không cần khóa API.
status_active: Yahoo Finance đang hoạt động
status_inactive: Kết nối Yahoo Finance thất bại
connection_failed: Không thể kết nối với Yahoo Finance
troubleshooting: Kiểm tra kết nối internet và cài đặt tường lửa của bạn. Yahoo Finance có thể tạm thời không khả dụng.
tiingo_settings:
title: Tiingo
description: Nhập token API do Tiingo cung cấp. Gói miễn phí hỗ trợ 50 ký hiệu duy nhất mỗi giờ với hơn 30 năm dữ liệu lịch sử.
env_configured_message: Đã cấu hình thành công qua biến môi trường TIINGO_API_KEY.
label: Token API
placeholder: Nhập token API Tiingo của bạn vào đây
show_details: "(hiển thị chi tiết)"
step_1_html: 'Truy cập <a href="https://www.tiingo.com" target="_blank" rel="noopener noreferrer" class="underline">tiingo.com</a> và tạo tài khoản miễn phí.'
step_2_html: 'Đi đến trang <a href="https://www.tiingo.com/account/api/token" target="_blank" rel="noopener noreferrer" class="underline">Token API</a>.'
step_3: Sao chép token API và dán vào bên dưới.
eodhd_settings:
title: EODHD
description: Nhập token API do EODHD cung cấp. Hỗ trợ ETF EU trên LSE, XETRA và các sàn giao dịch quốc tế khác.
env_configured_message: Đã cấu hình thành công qua biến môi trường EODHD_API_KEY.
label: Token API
placeholder: Nhập token API EODHD của bạn vào đây
show_details: "(hiển thị chi tiết)"
step_1_html: 'Truy cập <a href="https://eodhd.com/register" target="_blank" rel="noopener noreferrer" class="underline">eodhd.com</a> và tạo tài khoản miễn phí.'
step_2_html: 'Đi đến <a href="https://eodhd.com/cp/dashboard" target="_blank" rel="noopener noreferrer" class="underline">Bảng điều khiển</a> để tìm token API.'
step_3: Sao chép token API và dán vào bên dưới.
rate_limit_warning: "Gói miễn phí EODHD giới hạn 20 lần gọi API mỗi ngày. Tốt nhất dùng làm nhà cung cấp bổ sung cho ETF EU không có sẵn từ các nhà cung cấp khác."
alpha_vantage_settings:
title: Alpha Vantage
description: Nhập khóa API từ Alpha Vantage. Hỗ trợ ETF EU trên Sàn giao dịch chứng khoán London, XETRA và các sàn khác.
env_configured_message: Đã cấu hình thành công qua biến môi trường ALPHA_VANTAGE_API_KEY.
label: Khóa API
placeholder: Nhập khóa API Alpha Vantage của bạn vào đây
show_details: "(hiển thị chi tiết)"
step_1_html: 'Truy cập <a href="https://www.alphavantage.co/support/#api-key" target="_blank" rel="noopener noreferrer" class="underline">alphavantage.co</a> và nhận khóa API miễn phí.'
step_2: Sao chép khóa API và dán vào bên dưới.
rate_limit_warning: "Gói miễn phí Alpha Vantage giới hạn 25 lần gọi API mỗi ngày. Tốt nhất dùng làm nhà cung cấp bổ sung cho ETF EU không có sẵn từ các nhà cung cấp khác."
no_health_check_note: "Kiểm tra sức khỏe kết nối không khả dụng cho nhà cung cấp này do giới hạn tốc độ nghiêm ngặt."
twelve_data_settings:
api_calls_used: "%{used} / %{limit} lần gọi API hàng ngày đã sử dụng (%{percentage})"
description: Nhập khóa API do Twelve Data cung cấp
env_configured_message: Đã cấu hình thành công qua biến môi trường TWELVE_DATA_API_KEY.
label: Khóa API
placeholder: Nhập khóa API của bạn vào đây
show_details: "(hiển thị chi tiết)"
step_1_html: 'Truy cập <a href="https://twelvedata.com/register" target="_blank" rel="noopener noreferrer" class="underline">twelvedata.com</a> và tạo tài khoản nhà phát triển Twelve Data miễn phí.'
step_2_html: 'Đi đến trang <a href="https://twelvedata.com/account/api-keys" target="_blank" rel="noopener noreferrer" class="underline">Khóa API</a>.'
step_3: Hiển thị Khóa bí mật và dán vào bên dưới.
plan: "Gói %{plan}"
plan_upgrade_warning_title: Một số ký hiệu yêu cầu gói trả phí
plan_upgrade_warning_description: Các ký hiệu sau trong danh mục đầu tư của bạn không thể đồng bộ giá với gói Twelve Data hiện tại.
requires_plan: yêu cầu gói %{plan}
view_pricing: Xem bảng giá Twelve Data
title: Twelve Data
update:
failure: Giá trị cài đặt không hợp lệ
success: Cài đặt đã được cập nhật
invalid_onboarding_state: Trạng thái giới thiệu không hợp lệ
invalid_sync_time: "Định dạng thời gian đồng bộ không hợp lệ. Vui lòng sử dụng định dạng HH:MM (ví dụ: 02:30)."
invalid_llm_budget: "%{field} phải là số nguyên ≥ %{minimum}."
scheduler_sync_failed: Đã lưu cài đặt, nhưng cập nhật lịch đồng bộ thất bại. Vui lòng thử lại hoặc kiểm tra nhật ký máy chủ.
disconnect_external_assistant:
external_assistant_disconnected: Trợ lý bên ngoài đã bị ngắt kết nối
clear_cache:
cache_cleared: Bộ nhớ đệm dữ liệu đã được xóa. Quá trình này có thể mất vài giây để hoàn tất.
not_authorized: Bạn không có quyền thực hiện hành động này
ensure_super_admin_for_onboarding:
not_authorized: Bạn không có quyền thực hiện hành động này
sync_auto_sync_scheduler!:
scheduler_sync_failed: Đã lưu cài đặt, nhưng cập nhật lịch đồng bộ thất bại. Vui lòng thử lại hoặc kiểm tra nhật ký máy chủ.
sync_settings:
auto_sync_label: Bật đồng bộ tự động
auto_sync_description: Khi bật, tất cả tài khoản sẽ được tự động đồng bộ hàng ngày vào thời gian đã chỉ định.
auto_sync_time_label: Thời gian đồng bộ (HH:MM)
auto_sync_time_description: Chỉ định thời điểm trong ngày khi đồng bộ tự động sẽ xảy ra.
include_pending_label: Bao gồm giao dịch đang chờ
include_pending_description: Khi bật, các giao dịch đang chờ (chưa được ghi nhận) sẽ được nhập và tự động đối soát khi được đăng. Tắt nếu ngân hàng của bạn cung cấp dữ liệu đang chờ không đáng tin cậy.
env_configured_message: Cài đặt này bị tắt vì biến môi trường nhà cung cấp (SIMPLEFIN_INCLUDE_PENDING hoặc PLAID_INCLUDE_PENDING) đã được đặt. Xóa nó để bật cài đặt này.

View File

@@ -0,0 +1,31 @@
---
vi:
settings:
securities:
show:
disable_mfa: Tắt 2FA
disable_mfa_confirm: Bạn có chắc chắn muốn tắt xác thực hai yếu tố không? Điều này sẽ làm giảm bảo mật tài khoản của bạn.
enable_mfa: Bật 2FA
mfa_enabled_status_html: "Xác thực hai yếu tố đang <span class=\"font-medium text-green-600\">bật</span>"
mfa_enabled_description: Tài khoản của bạn được bảo vệ bằng lớp bảo mật bổ sung.
mfa_disabled_status_html: "Xác thực hai yếu tố đang <span class=\"font-medium text-red-600\">tắt</span>"
mfa_disabled_description: Bật 2FA để thêm lớp bảo mật cho tài khoản của bạn.
mfa_description: Thêm lớp bảo mật cho tài khoản bằng cách yêu cầu mã từ ứng dụng xác thực khi đăng nhập
mfa_title: Xác thực hai yếu tố
webauthn_add: Thêm khóa passkey hoặc khóa bảo mật
webauthn_added: Đã thêm %{date}
webauthn_description: Sử dụng passkey, Touch ID, Windows Hello hoặc khóa bảo mật phần cứng làm yếu tố thứ hai khi đăng nhập.
webauthn_empty: Chưa có passkey hoặc khóa bảo mật nào được đăng ký.
webauthn_last_used: Sử dụng lần cuối %{time_ago} trước
webauthn_name_label: Tên khóa
webauthn_name_placeholder: MacBook Touch ID, YubiKey, v.v.
webauthn_remove: Xóa
webauthn_remove_confirm: Bạn có chắc chắn muốn xóa passkey hoặc khóa bảo mật này không?
webauthn_remove_confirm_body: Bạn sẽ cần đăng ký lại passkey hoặc khóa bảo mật này trước khi có thể sử dụng để xác minh đăng nhập.
webauthn_title: Passkey và khóa bảo mật
webauthn_unsupported: Trình duyệt này không hỗ trợ passkey hoặc khóa bảo mật.
webauthn_credentials:
default_name: Khóa bảo mật
failure: Không thể lưu passkey hoặc khóa bảo mật. Vui lòng thử lại.
mfa_required: Bật xác thực hai yếu tố trước khi thêm passkey hoặc khóa bảo mật.
success: Passkey hoặc khóa bảo mật đã được xóa.

View File

@@ -0,0 +1,7 @@
---
vi:
settings:
sso_identities:
destroy:
cannot_unlink_last: Không thể hủy liên kết danh tính cuối cùng
success: Đã hủy liên kết danh tính SSO thành công

View File

@@ -0,0 +1,512 @@
---
vi:
views:
settings:
payments:
renewal: "Đóng góp của bạn tiếp tục vào ngày %{date}."
cancellation: "Đóng góp của bạn kết thúc vào ngày %{date}."
settings:
debugs:
show:
page_title: "Gỡ lỗi"
title: "Nhật ký sự kiện gỡ lỗi"
subtitle: "Các sự kiện vận hành quan trọng dành cho siêu quản trị viên. Mới nhất trước."
empty: "Không tìm thấy sự kiện gỡ lỗi."
missing_value: "-"
filters:
all: "Tất cả"
category: "Danh mục"
level: "Cấp độ"
source: "Nguồn"
provider: "Nhà cung cấp"
start_date: "Từ"
end_date: "Đến"
family_id: "ID hộ gia đình"
account_id: "ID tài khoản"
user_id: "ID người dùng"
account_provider_id: "ID nhà cung cấp tài khoản"
submit: "Lọc"
reset: "Đặt lại"
table:
time: "Thời gian"
level: "Cấp độ"
category: "Danh mục"
source: "Nguồn"
message: "Thông báo"
context: "Bối cảnh"
metadata: "Siêu dữ liệu"
view_metadata: "Xem"
context:
provider: "provider=%{value}"
family: "family=%{value}"
account: "account=%{value}"
user: "user=%{value}"
account_provider: "account_provider=%{value}"
llm_usages:
show:
page_title: "Sử dụng & Chi phí LLM"
subtitle: "Theo dõi lượng sử dụng AI và chi phí ước tính"
start_date: "Ngày bắt đầu"
end_date: "Ngày kết thúc"
filter: "Lọc"
total_requests: "Tổng yêu cầu"
total_tokens: "Tổng token"
prompt: "lệnh"
completion: "hoàn thành"
total_cost: "Tổng chi phí"
avg_cost_per_request: "Chi phí tb/yêu cầu"
based_on_requests: "Dựa trên %{with_cost} trong %{total} yêu cầu có dữ liệu chi phí"
cost_by_operation: "Chi phí theo thao tác"
cost_by_model: "Chi phí theo mô hình"
recent_usage: "Sử dụng gần đây"
col_date: "Ngày"
col_operation: "Thao tác"
col_model: "Mô hình"
col_tokens: "Token"
col_cost: "Chi phí"
failed: "Thất bại"
no_usage_data: "Không tìm thấy dữ liệu sử dụng cho kỳ đã chọn"
cost_estimates_title: "Về ước tính chi phí"
cost_estimates_description: "Chi phí được ước tính dựa trên bảng giá của OpenAI từ năm 2025. Chi phí thực tế có thể khác nhau. Giá tính trên 1 triệu token và thay đổi theo mô hình. Mô hình tùy chỉnh hoặc tự lưu trữ sẽ hiển thị \"N/A\" và không được tính vào tổng chi phí."
ai_prompts:
show:
page_title: Câu lệnh AI
openai_label: OpenAI
disable_ai: Tắt trợ lý AI
prompt_instructions: Hướng dẫn câu lệnh
main_system_prompt:
title: Câu lệnh hệ thống chính
subtitle: Hướng dẫn cốt lõi xác định cách trợ lý AI hoạt động trong tất cả cuộc trò chuyện
transaction_categorizer:
title: Phân loại giao dịch
subtitle: AI tự động phân loại giao dịch dựa trên các danh mục bạn định nghĩa
merchant_detector:
title: Phát hiện nhà cung cấp
subtitle: AI xác định và làm phong phú dữ liệu giao dịch với thông tin nhà cung cấp
payments:
show:
page_title: Thanh toán
subscription_subtitle: Cập nhật thông tin thẻ tín dụng
subscription_title: Quản lý đóng góp
currently_on_plan: "Hiện đang dùng"
trialing: "Hiện đang dùng bản demo mở của %{product_name}"
trial_days_left:
one: "Dữ liệu sẽ bị xóa sau %{count} ngày"
other: "Dữ liệu sẽ bị xóa sau %{count} ngày"
not_contributing_prefix: "Bạn hiện"
not_contributing_emphasis: "chưa đóng góp"
contributions_note: "Đóng góp cho %{product_name} sẽ hiển thị ở đây."
manage: "Quản lý"
choose_level: "Chọn mức"
payment_via_stripe: "Thanh toán qua Stripe"
appearances:
show:
page_title: Giao diện
theme_title: Giao diện
theme_subtitle: Chọn giao diện ưa thích cho ứng dụng
theme_dark: Tối
theme_light: Sáng
theme_system: Hệ thống
transactions_title: Giao dịch
transactions_subtitle: Tùy chỉnh cách hiển thị giao dịch
dashboard_title: Bảng điều khiển
dashboard_subtitle: Tùy chỉnh cách hiển thị bảng điều khiển
dashboard_two_column_title: Bố cục hai cột
dashboard_two_column_description: Hiển thị các widget bảng điều khiển thành hai cột trên màn hình lớn. Khi tắt, các widget xếp chồng thành một cột.
split_grouped_title: Nhóm giao dịch phân chia
split_grouped_description: Hiển thị giao dịch phân chia được nhóm dưới giao dịch cha trong danh sách. Khi tắt, các mục con phân chia xuất hiện như các hàng riêng biệt.
preferences:
show:
country: Quốc gia
currency: Tiền tệ
date_format: Định dạng ngày
general_subtitle: Cấu hình tùy chọn của bạn
general_title: Chung
default_period: Kỳ mặc định
default_account_order: Thứ tự tài khoản mặc định
language: Ngôn ngữ
language_auto: Ngôn ngữ trình duyệt
page_title: Tùy chọn
timezone: Múi giờ
month_start_day: Ngân sách tháng bắt đầu vào
month_start_day_hint: "Đặt ngày bắt đầu tháng ngân sách (ví dụ: ngày nhận lương)"
month_start_day_warning: Ngân sách và tính toán MTD của bạn sẽ dùng ngày bắt đầu tùy chỉnh này thay vì ngày 1 mỗi tháng.
translations_notice: Lưu ý, chúng tôi vẫn đang tiếp tục dịch cho các ngôn ngữ khác nhau.
currencies_title: "Tiền tệ %{moniker}"
currencies_subtitle: Chọn tiền tệ xuất hiện trong các trường tiền tệ cho %{moniker} của bạn
base_currency_label: Tiền tệ cơ sở
base_currency_badge: Tiền tệ cơ sở
additional_currencies_label: Tiền tệ bổ sung
no_additional_currencies: Chưa chọn
currencies_more: "+%{count} khác"
manage_currencies: Quản lý tiền tệ
manage_currencies_subtitle: Bỏ chọn các tiền tệ bạn không dùng, hoặc thu gọn danh sách xuống một vài loại.
select_all_currencies: Chọn tất cả
select_base_only: Chỉ tiền tệ cơ sở
currency_search_placeholder: Tìm kiếm tiền tệ
no_matching_currencies: Không tìm thấy tiền tệ
selected_currencies_count:
one: "%{count} đã chọn"
other: "%{count} đã chọn"
save_currencies: Lưu tiền tệ
sharing_title: "Chia sẻ %{moniker}"
sharing_subtitle: "Kiểm soát cách chia sẻ tài khoản trong %{moniker} của bạn"
sharing_default_label: Chia sẻ mặc định cho tài khoản mới
sharing_shared: Chia sẻ với tất cả thành viên
sharing_private: Giữ riêng tư mặc định
preview:
title: Bật tính năng xem trước
description: Chọn tham gia các tính năng đang phát triển được gắn thẻ xem trước hoặc canary.
profiles:
destroy:
cannot_remove_self: Bạn không thể tự xóa mình khỏi tài khoản.
member_owns_other_family_data: Thành viên này vẫn sở hữu tài khoản trong hộ gia đình khác và không thể xóa. Hãy chuyển hoặc xóa các tài khoản đó trước.
member_removal_failed: Đã xảy ra sự cố khi xóa thành viên.
member_removed: Thành viên đã được xóa thành công.
not_authorized: Bạn không có quyền xóa thành viên.
show:
confirm_delete:
body: Bạn có chắc muốn xóa vĩnh viễn tài khoản của mình? Hành động này không thể hoàn tác.
title: Xóa tài khoản?
confirm_reset:
body: Bạn có chắc muốn đặt lại tài khoản? Thao tác này sẽ xóa tất cả tài khoản, danh mục, nhà cung cấp, nhãn và dữ liệu khác. Không thể hoàn tác.
title: Đặt lại tài khoản?
confirm_reset_with_sample_data:
body: Bạn có chắc muốn đặt lại tài khoản và tải dữ liệu mẫu? Thao tác này sẽ xóa dữ liệu hiện tại và thay thế bằng dữ liệu demo để bạn khám phá Sure an toàn.
title: Đặt lại tài khoản và tải dữ liệu mẫu?
confirm_remove_invitation:
body: Bạn có chắc muốn xóa lời mời cho %{email}?
title: Xóa lời mời
confirm_remove_member:
body: Bạn có chắc muốn xóa %{name} khỏi tài khoản?
title: Xóa thành viên
danger_zone_title: Khu vực nguy hiểm
delete_account: Xóa tài khoản
delete_account_warning: Xóa tài khoản sẽ xóa vĩnh viễn tất cả dữ liệu và không thể hoàn tác.
reset_account: Đặt lại tài khoản
reset_account_warning: Đặt lại tài khoản sẽ xóa tất cả tài khoản, danh mục, nhà cung cấp, nhãn và dữ liệu khác, nhưng giữ lại tài khoản người dùng.
reset_account_with_sample_data: Đặt lại và tải trước
reset_account_with_sample_data_warning: Xóa tất cả dữ liệu hiện tại rồi tải dữ liệu mẫu mới để khám phá với môi trường được điền sẵn.
email: Email
first_name: Tên
group_form_input_placeholder: Nhập tên nhóm
group_form_label: Tên nhóm
group_title: Thành viên nhóm
household_form_input_placeholder: Nhập tên hộ gia đình
household_form_label: Tên hộ gia đình
household_subtitle: Người được mời có thể đăng nhập vào %{moniker} của bạn và truy cập tài nguyên chia sẻ.
household_title: Hộ gia đình
invitation_link: Liên kết mời
invite_member: Thêm thành viên
last_name: Họ
page_title: Thông tin hồ sơ
pending: Đang chờ
profile_subtitle: Tùy chỉnh cách bạn hiển thị trên %{product_name}
profile_title: Cá nhân
remove_invitation: Xóa lời mời
remove_member: Xóa thành viên
save: Lưu
securities:
show:
page_title: Bảo mật
mfa_title: Xác thực hai yếu tố
mfa_description: Thêm lớp bảo mật cho tài khoản bằng cách yêu cầu mã từ ứng dụng xác thực khi đăng nhập
enable_mfa: Bật 2FA
disable_mfa: Tắt 2FA
disable_mfa_confirm: Bạn có chắc muốn tắt xác thực hai yếu tố?
sso_title: Tài khoản đã kết nối
sso_subtitle: Quản lý các kết nối tài khoản đăng nhập một lần
sso_disconnect: Ngắt kết nối
sso_last_used: Sử dụng lần cuối
sso_never: Chưa bao giờ
sso_no_email: Không có email
sso_no_identities: Chưa kết nối tài khoản SSO
sso_connect_hint: Đăng xuất và đăng nhập bằng nhà cung cấp SSO để kết nối tài khoản.
sso_confirm_title: Ngắt kết nối tài khoản?
sso_confirm_body: Bạn có chắc muốn ngắt kết nối tài khoản %{provider}? Bạn có thể kết nối lại sau bằng cách đăng nhập với nhà cung cấp đó.
sso_confirm_button: Ngắt kết nối
sso_warning_message: Đây là phương thức đăng nhập duy nhất của bạn. Hãy đặt mật khẩu trong cài đặt bảo mật trước khi ngắt kết nối, nếu không bạn có thể bị khóa khỏi tài khoản.
settings_nav:
accounts_label: Tài khoản
advanced_section_title: Nâng cao
ai_prompts_label: Câu lệnh AI
api_key_label: Khóa API
payment_label: Thanh toán
categories_label: Danh mục
feedback_label: Phản hồi
general_section_title: Chung
imports_label: Nhập dữ liệu
exports_label: Xuất dữ liệu
llm_usage_label: Sử dụng LLM
logout: Đăng xuất
merchants_label: Nhà cung cấp
providers_label: Nhà cung cấp dịch vụ
guides_label: Hướng dẫn
other_section_title: Thêm
preferences_label: Tùy chọn
profile_label: Thông tin hồ sơ
recurring_transactions_label: Định kỳ
rules_label: Quy tắc
security_label: Bảo mật
self_hosting_label: Tự lưu trữ
sso_providers_label: Nhà cung cấp SSO
statement_vault_label: Kho sao kê
tags_label: Nhãn
transactions_section_title: Giao dịch
users_label: Người dùng
whats_new_label: Có gì mới
api_keys_label: Khóa API
appearance_label: Giao diện
bank_sync_label: Đồng bộ ngân hàng
debug_label: Gỡ lỗi
settings_nav_link_large:
next: Tiếp theo
previous: Quay lại
user_avatar_field:
accepted_formats: JPG hoặc PNG. Tối đa 5MB.
choose: Tải ảnh lên
choose_label: (tùy chọn)
change: Thay đổi ảnh
providers:
update:
updated_successfully: Đã cập nhật cài đặt nhà cung cấp thành công
no_changes: Không có thay đổi nào được thực hiện
not_authorized: Không được phép
bank_sync:
page_title: Đồng bộ ngân hàng
lede: Kết nối tài khoản bên ngoài để giao dịch, số dư và danh mục nắm giữ tự động đồng bộ vào Sure.
status:
ok: Đã kết nối
warn: Cần hành động
err: Lỗi
off: Chưa cấu hình
maturity:
beta: Beta
alpha: Alpha
drawer_trust_statement: "Chỉ đọc. Sure không bao giờ có thể chuyển tiền, và thông tin đăng nhập của bạn được lưu trữ mã hóa."
setup_steps:
eyebrow: Thiết lập
need_help: "Cần trợ giúp?"
connect: Kết nối
groups:
your_connections: Kết nối của bạn
available: Khả dụng
empty_available: Tất cả nhà cung cấp khả dụng đã được kết nối.
health_strip:
connected: đã kết nối
needs_attention: cần chú ý
accounts_syncing: tài khoản đang đồng bộ
last_synced: Đồng bộ lần cuối %{time} trước
meta:
sync_error: Lỗi đồng bộ
no_recent_sync: Đồng bộ quá hạn
registration_needed: Cần đăng ký
reconsent_required: Cần đồng ý lại
reconsent_needed:
one: Cần đồng ý lại sau 1 ngày
other: Cần đồng ý lại sau %{count} ngày
last_synced: Đồng bộ %{time} trước
sync_all: Đồng bộ tất cả
sync_all_in_progress: Đang đồng bộ tất cả nhà cung cấp đã kết nối…
sync_all_recently: Đồng bộ đang được thực hiện. Thử lại sau một chút.
sync_provider: Đồng bộ ngay
sync_provider_in_progress: Đã bắt đầu đồng bộ.
recently_synced: Đã đồng bộ gần đây. Thử lại sau một chút.
taglines:
simplefin: Kết nối tài khoản ngân hàng Mỹ qua giao thức mở SimpleFIN.
lunchflow: Kết nối 20.000+ ngân hàng từ 40+ quốc gia (Anh, EU, Mỹ và nhiều hơn!)
enable_banking: Đồng bộ tài khoản ngân hàng châu Âu qua ngân hàng mở PSD2.
coinstats: Theo dõi toàn bộ danh mục tiền mã hóa trên ví và sàn giao dịch.
mercury: Tự động đồng bộ tài khoản ngân hàng doanh nghiệp Mercury.
brex: Đồng bộ tiền mặt và hoạt động thẻ doanh nghiệp Brex với quyền chỉ đọc.
coinbase: Nhập danh mục tiền mã hóa Coinbase và theo dõi hiệu suất.
binance: Đồng bộ số dư giao ngay Binance bằng khóa API chỉ đọc.
kraken: Đồng bộ số dư Kraken và giao dịch giao ngay bằng khóa API chỉ đọc.
snaptrade: Kết nối tài khoản môi giới qua mạng tổng hợp SnapTrade.
ibkr: Đồng bộ tài khoản đầu tư Interactive Brokers qua nhập Flex Query.
indexa_capital: Theo dõi danh mục đầu tư tự động Indexa Capital.
sophtron: Kết nối ngân hàng và tiện ích tại Mỹ & Canada.
plaid: Kết nối hàng ngàn tổ chức tài chính Mỹ qua Plaid.
plaid_eu: Kết nối tổ chức tài chính châu Âu qua Plaid (PSD2 / Open Banking).
search_filters:
aria_label: Tìm kiếm nhà cung cấp
placeholder: Tìm kiếm nhà cung cấp
chips:
all: Tất cả
bank: Ngân hàng
crypto: Tiền mã hóa
investment: Đầu tư
empty_filter: Không có nhà cung cấp phù hợp với bộ lọc.
clear_filter: Xóa bộ lọc
encryption_error:
title: Thiếu khóa mã hóa
message: "Đồng bộ ngân hàng cần cấu hình mã hóa Active Record. Đặt primary_key, deterministic_key và key_derivation_salt trong thông tin đăng nhập Rails hoặc biến môi trường."
provider_form:
save_and_connect: "Lưu và kết nối"
coinbase_panel:
setup_instructions: "Để kết nối Coinbase:"
step1_html: Vào <a href="https://portal.cdp.coinbase.com/projects/api-keys" target="_blank" rel="noopener noreferrer" class="text-primary underline">Cài đặt API Coinbase</a>
step2: Tạo khóa API mới với quyền chỉ đọc (xem tài khoản, xem giao dịch)
step3: Sao chép khóa API và bí mật API, dán vào bên dưới
api_key_label: Khóa API
api_key_placeholder: Nhập khóa API Coinbase
api_secret_label: Bí mật API
api_secret_placeholder: Nhập bí mật API Coinbase
connect_button: Kết nối Coinbase
syncing: Đang đồng bộ...
sync: Đồng bộ
disconnect_confirm: Bạn có chắc muốn ngắt kết nối Coinbase? Các tài khoản đã đồng bộ sẽ trở thành tài khoản thủ công.
binance_panel:
setup_instructions: "Để kết nối Binance, tạo khóa API chỉ đọc:"
step1_html: 'Vào <a href="https://www.binance.com/en/my/settings/api-management" target="_blank" rel="noopener noreferrer" class="underline">Quản lý API Binance</a>'
step2: "Tạo khóa API mới chỉ với quyền Bật Đọc"
step3: "Dán Khóa API và Bí mật vào bên dưới"
no_withdraw_title: "Chỉ khóa chỉ đọc"
no_withdraw_body: "Không bật quyền rút tiền khi tạo khóa API Binance. Sure chỉ cần quyền đọc."
ip_hint_title: "Yêu cầu danh sách trắng IP"
ip_hint_body: "Thêm IP đầu ra của máy chủ ứng dụng vào danh sách trắng Khóa API Binance:"
ip_hint_contact_admin: "Liên hệ quản trị viên để lấy địa chỉ IP đầu ra của máy chủ ứng dụng."
api_key_label: Khóa API
api_key_placeholder: Dán Khóa API Binance
api_secret_label: Bí mật API
api_secret_placeholder: Dán Bí mật API Binance
connect_button: Kết nối Binance
syncing: Đang đồng bộ...
sync: Đồng bộ
historical_import: "Cài đặt nhập dữ liệu lịch sử"
sync_start_date_label: "Nhập dữ liệu từ"
sync_start_date_help: "Chọn khoảng thời gian lịch sử cần tải."
disconnect_confirm: "Bạn có chắc muốn ngắt kết nối Binance?"
kraken_panel:
step1_html: 'Vào <a href="https://pro.kraken.com/app/settings/api" target="_blank" rel="noopener noreferrer" class="underline">Cài đặt API Kraken</a>'
step2: "Tạo khóa API chỉ với Truy vấn Quỹ và Truy vấn Lệnh & Giao dịch Đã Đóng."
step3: "Dán khóa API và khóa riêng vào bên dưới."
read_only_title: "Chỉ đồng bộ sàn giao dịch chỉ đọc"
read_only_body: "Không cấp quyền giao dịch, hủy, rút tiền, xuất, sổ cái, Earn, đặt cược hoặc chuyển. Sure chỉ nhập số dư, danh mục nắm giữ và giao dịch giao ngay."
default_connection_name: Kraken
add_connection: Thêm kết nối Kraken
update_connection: Cập nhật kết nối
connection_name_label: Tên kết nối
connection_name_placeholder: Kraken chính
api_key_label: Khóa API
api_key_placeholder: Dán khóa API Kraken
keep_api_key_placeholder: Để trống để giữ khóa API hiện tại
api_secret_label: Khóa riêng
api_secret_placeholder: Dán khóa riêng Kraken
keep_api_secret_placeholder: Để trống để giữ khóa riêng hiện tại
setup_accounts: Thiết lập tài khoản
syncing: Đang đồng bộ...
sync: Đồng bộ
disconnect: Ngắt kết nối
disconnect_confirm: "Bạn có chắc muốn ngắt kết nối %{name}?"
enable_banking_panel:
callback_url_instruction: "Đối với URL callback, sử dụng %{callback_url}."
connection_error: Lỗi kết nối
step_1_html: "Vào %{link} và lấy thông tin xác thực nhà phát triển."
step_2: "Chọn quốc gia và dán ID ứng dụng + Chứng chỉ khách hàng vào bên dưới."
step_3: "Lưu, rồi dùng Thêm kết nối để liên kết ngân hàng."
config_locked_title: "Cấu hình đã bị khóa"
config_locked_message: "Ngắt kết nối tất cả ngân hàng đã liên kết trước khi thay đổi thông tin xác thực này."
application_id_label: "ID ứng dụng"
application_id_placeholder_new: "Nhập ID ứng dụng"
application_id_placeholder_update: "Nhập ID mới để cập nhật"
client_certificate_label: "Chứng chỉ khách hàng (kèm khóa riêng)"
save_and_connect: "Lưu và kết nối"
update_connection: "Cập nhật kết nối"
connected_bank: "Ngân hàng đã kết nối"
session_expires: "Phiên hết hạn: %{date}"
unknown: "Không xác định"
connection: "Kết nối"
session_expired_reconnect: "Phiên hết hạn - kết nối lại"
configured: "Đã cấu hình"
ready_to_link: "Sẵn sàng liên kết tài khoản"
sync: "Đồng bộ"
reconnect: "Kết nối lại"
connect_bank: "Kết nối ngân hàng"
remove: "Xóa"
remove_confirm: "Bạn có chắc muốn xóa kết nối này?"
add_connection: "Thêm kết nối"
syncing: "Đang đồng bộ"
select_country: "Chọn quốc gia..."
country_label: "Quốc gia"
lunchflow_panel:
step_1_html: "Vào %{link} và tạo khóa API."
step_2: "Dán khóa vào bên dưới và kết nối."
step_3: "Sau đó vào Tài khoản để liên kết các tài khoản đã đồng bộ."
api_key_label: "Khóa API"
api_key_placeholder_new: "Dán khóa API tại đây"
api_key_placeholder_update: "Nhập khóa API mới để cập nhật"
base_url_label: "URL cơ sở (Tùy chọn)"
base_url_placeholder: "https://lunchflow.app/api/v1 (mặc định)"
save_and_connect: "Lưu và kết nối"
update_connection: "Cập nhật kết nối"
simplefin_panel:
step_1_html: "Vào %{link} để lấy token thiết lập một lần."
step_2: "Dán token vào bên dưới và kết nối."
step_3: "Sau đó vào Tài khoản để liên kết các tài khoản đã đồng bộ."
setup_token_label: "Token thiết lập"
setup_token_placeholder: "Dán token thiết lập SimpleFIN"
save_and_connect: "Lưu và kết nối"
plaid_panel:
step_1_html: "Mở %{link} và sao chép ID khách hàng và Khóa bí mật."
step_2: "Chọn môi trường. Dùng sandbox để kiểm tra và production cho tài khoản thực."
step_3: "Dán thông tin xác thực vào bên dưới và kết nối."
plaid_eu_panel:
step_1_html: "Mở %{link} và sao chép ID khách hàng EU và Khóa bí mật."
not_found: Không tìm thấy nhà cung cấp.
sync_provider_no_items: Không có kết nối nào để đồng bộ.
ibkr_panel:
steps:
step_1: 'Trong Client Portal IBKR, điều hướng đến "Hiệu suất & Báo cáo" > "Flex Queries".'
step_2: 'Nhấn biểu tượng "+" trong phần "Activity Flex Query" để tạo truy vấn mới.'
step_3: 'Đặt tên truy vấn (ví dụ: "Sure Sync"), sau đó xem chi tiết Flex Query bên dưới và bật các phần, trường và tùy chọn cấu hình được liệt kê.'
step_4: 'Lưu truy vấn, ghi chú "Query ID", rồi dùng biểu tượng bánh răng trong phần "Flex Web Service Configuration" để tạo Token truy cập.'
step_5: "Dán Query ID và Token vào bên dưới, lưu cấu hình, rồi vào Tài khoản để liên kết các tài khoản IBKR đã phát hiện."
flex_query_details:
eyebrow: Flex Query
title: Phần, trường và cấu hình
summary: Mở rộng để xem các phần, trường và cài đặt chính xác mà IBKR Activity Flex Query của bạn phải bao gồm.
sections_heading: Bật các phần và trường này
configuration_heading: Đặt các tùy chọn truy vấn này
sections:
account_information: "Thông tin tài khoản: ID tài khoản, Tiền tệ"
cash_report: "Báo cáo tiền mặt:"
cash_report_options: "Tùy chọn: Không"
cash_report_fields: "Trường: Tiền tệ, Tiền mặt cuối kỳ"
cash_transactions: "Giao dịch tiền mặt:"
cash_transactions_options: "Tùy chọn: Cổ tức, Nạp/Rút, Chi tiết"
cash_transactions_fields: "Trường: Số tiền, Conid, Tiền tệ, Tỷ giá FX sang Cơ sở, Ngày báo cáo, ID giao dịch, Loại"
change_in_position_value_summary: "Tóm tắt thay đổi giá trị vị thế: Tiền tệ, Giá trị cuối kỳ"
net_asset_value: "Giá trị tài sản ròng (NAV) theo Cơ sở:"
net_asset_value_options: "Tùy chọn: Không"
net_asset_value_fields: "Trường: Tiền tệ, Ngày báo cáo, Tổng"
open_positions: "Vị thế mở:"
open_positions_options: "Tùy chọn: Tóm tắt"
open_positions_fields: "Trường: Loại tài sản, Conid, Giá vốn, Tiền tệ, Tỷ giá FX, Giá đánh dấu, Số lượng, Ngày báo cáo, ID chứng khoán, Loại ID, Phía, Ký hiệu"
trades: "Giao dịch:"
trades_options: "Tùy chọn: Thực hiện"
trades_fields: "Trường: Loại tài sản, Mua/Bán, Conid, Tiền tệ, Tỷ giá FX, Hoa hồng IB, Tiền tệ hoa hồng, Số lượng, Ký hiệu, Ngày giao dịch, ID giao dịch, Giá giao dịch, ID giao dịch"
configuration:
models: "Mô hình: Tùy chọn"
format: "Định dạng: XML"
period: "Kỳ: 365 ngày lịch gần nhất"
date_format: "Định dạng ngày: yyyy-MM-dd"
time_format: "Định dạng giờ: HH:mm:ss"
date_time_separator: "Dấu phân cách ngày/giờ: ; (chấm phẩy)"
profit_and_loss: "Lãi và lỗ: Mặc định"
all_other_options: 'Tất cả tùy chọn cấu hình khác: "Không"'
report_window_note: "Báo cáo IBKR Flex bị giới hạn trong cửa sổ truy vấn bạn cấu hình trong IBKR. Sure sẽ nhập toàn bộ danh mục nắm giữ hiện tại cộng với tối đa 365 ngày hoạt động gần nhất từ báo cáo này."
sync: Đồng bộ
disconnect_confirm: Ngắt kết nối Interactive Brokers?
query_id_label: Query ID
query_id_placeholder_new: Nhập Query ID IBKR Flex của bạn
query_id_placeholder_existing: Để trống để giữ Query ID hiện tại
token_label: Token
token_placeholder_new: Nhập Token dịch vụ web IBKR Flex của bạn
token_placeholder_existing: Để trống để giữ Token hiện tại
save_configuration: Lưu cấu hình
update_configuration: Cập nhật cấu hình
status_configured_prefix: "%{summary}. Vào tab"
accounts_tab: Tài khoản
status_configured_suffix: để quản lý các tài khoản đã phát hiện.
not_configured: Chưa cấu hình.

View File

@@ -0,0 +1,38 @@
---
vi:
concerns:
self_hostable:
redis_configured: "Redis đã được cấu hình đúng! Bây giờ bạn có thể thiết lập ứng dụng Sure của mình."
shared:
confirm_modal:
accept: Xác nhận
body_html: "<p>Bạn sẽ không thể hoàn tác quyết định này</p>"
cancel: Hủy
title: Bạn có chắc không?
money_field:
label: Số tiền
exchange_rate_tabs:
calculate_rate_tab: Tính tỷ giá ngoại tệ
convert_tab: Chuyển đổi với tỷ giá
destination_amount: Số tiền đích
exchange_rate: Tỷ giá
exchange_rate_help: Chọn cách nhập số tiền.
syncing_notice:
syncing: Đang đồng bộ dữ liệu tài khoản...
require_admin: "Chỉ quản trị viên mới có thể thực hiện hành động này"
custom_confirm:
default_title: "Bạn có chắc không?"
default_body: "Thao tác này không thể hoàn tác."
default_btn_text: "Xác nhận"
family_moniker:
group_plural: Nhóm
group_singular: Nhóm
plural: Hộ gia đình
singular: Hộ gia đình
trend_change:
no_change: "không thay đổi"
cancel: Hủy
transaction_tabs:
expense: Chi tiêu
income: Thu nhập
transfer: Chuyển khoản

View File

@@ -0,0 +1,159 @@
---
vi:
simplefin_items:
new:
title: Kết nối SimpleFIN
setup_token: Mã thiết lập
setup_token_placeholder: dán mã thiết lập SimpleFIN của bạn vào đây
connect: Kết nối
cancel: Hủy
create:
success: Kết nối SimpleFIN đã được thêm thành công! Các tài khoản của bạn sẽ xuất hiện sau khi đồng bộ trong nền.
errors:
blank_token: Vui lòng nhập mã thiết lập SimpleFIN.
invalid_token: Mã thiết lập không hợp lệ. Vui lòng kiểm tra rằng bạn đã sao chép toàn bộ mã từ SimpleFIN Bridge.
token_compromised: Mã thiết lập có thể đã bị xâm phạm, hết hạn hoặc đã được sử dụng. Vui lòng tạo mã mới.
create_failed: "Kết nối thất bại: %{message}"
unexpected: Đã xảy ra lỗi không mong muốn. Vui lòng thử lại.
destroy:
success: Kết nối SimpleFIN sẽ được gỡ bỏ
update:
success: Kết nối SimpleFIN đã được cập nhật thành công! Các tài khoản của bạn đang được kết nối lại.
errors:
blank_token: Vui lòng nhập mã thiết lập SimpleFIN.
invalid_token: Mã thiết lập không hợp lệ. Vui lòng kiểm tra rằng bạn đã sao chép toàn bộ mã từ SimpleFIN Bridge.
token_compromised: Mã thiết lập có thể đã bị xâm phạm, hết hạn hoặc đã được sử dụng. Vui lòng tạo mã mới.
update_failed: "Cập nhật kết nối thất bại: %{message}"
unexpected: Đã xảy ra lỗi không mong muốn. Vui lòng thử lại.
edit:
setup_token:
label: "Mã thiết lập SimpleFIN:"
placeholder: "Dán mã thiết lập SimpleFIN của bạn vào đây..."
help_text: "Mã phải là một chuỗi dài bắt đầu bằng chữ cái và số"
title: Cập nhật kết nối SimpleFIN
header_subtitle: Lấy mã thiết lập mới để kết nối lại tài khoản SimpleFIN của bạn
connection_needs_update: "Kết nối SimpleFIN của bạn cần được cập nhật:"
step_1_html: "Truy cập <a href=\"https://bridge.simplefin.org/simplefin/create\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-link hover:text-link underline\">SimpleFIN Bridge</a> để tạo mã thiết lập mới"
step_2: Sao chép mã và dán vào bên dưới
step_3: "Nhấn \"Cập nhật\" để khôi phục quyền truy cập"
update: Cập nhật
cancel: Hủy
setup_accounts:
title: Thiết lập tài khoản SimpleFIN của bạn
header_subtitle: Chọn đúng loại tài khoản cho các tài khoản đã nhập
choose_account_type: "Chọn đúng loại tài khoản cho mỗi tài khoản SimpleFIN:"
account_type_checking_savings: Tài khoản thanh toán hoặc tiết kiệm
account_type_checking_savings_desc: Tài khoản ngân hàng thông thường
account_type_credit_card: Thẻ tín dụng
account_type_credit_card_desc: Tài khoản thẻ tín dụng
account_type_investment: Đầu tư
account_type_investment_desc: "Tài khoản Brokerage, 401(k), IRA"
account_type_loan: Vay hoặc thế chấp
account_type_loan_desc: Tài khoản nợ
account_type_other_asset: Tài sản khác
account_type_other_asset_desc: Tất cả các loại khác
transaction_history_title: "Lịch sử giao dịch:"
transaction_history_description_html: "SimpleFIN thường cung cấp <strong>60-90 ngày</strong> lịch sử giao dịch, tùy thuộc vào ngân hàng của bạn. Sau khi thiết lập ban đầu, các giao dịch mới sẽ tự động đồng bộ. Dữ liệu lịch sử có sẵn tùy theo tổ chức và loại tài khoản."
account_type_label: "Loại tài khoản:"
create_accounts: Tạo tài khoản
creating_accounts: Đang tạo tài khoản...
cancel: Hủy
account_card:
balance: "Số dư"
activity:
recent:
one: "1 giao dịch • mới nhất %{when}"
other: "%{count} giao dịch • mới nhất %{when}"
dormant: "Không có hoạt động trong %{days} ngày"
empty: "Chưa nhập giao dịch nào"
likely_closed: "Không có hoạt động gần đây và số dư bằng không — thẻ này có thể đã đóng hoặc bị thay thế"
today: "hôm nay"
yesterday: "hôm qua"
days_ago:
one: "1 ngày trước"
other: "%{count} ngày trước"
stale_accounts:
title: "Tài khoản không còn trong SimpleFIN"
description: "Các tài khoản này tồn tại trong cơ sở dữ liệu của bạn nhưng không còn được SimpleFIN cung cấp. Điều này có thể xảy ra khi cấu hình tài khoản thay đổi ở phía trên."
action_prompt: "Bạn muốn làm gì?"
action_delete: "Xóa tài khoản và tất cả giao dịch"
action_move: "Chuyển giao dịch sang:"
action_skip: "Bỏ qua lúc này"
transaction_count:
one: "%{count} giao dịch"
other: "%{count} giao dịch"
complete_account_setup:
all_skipped: "Tất cả tài khoản đã bị bỏ qua. Không có tài khoản nào được tạo."
no_accounts: "Không có tài khoản nào để thiết lập."
success:
one: "Đã tạo thành công %{count} tài khoản SimpleFIN! Các giao dịch và tài sản của bạn đang được nhập trong nền."
other: "Đã tạo thành công %{count} tài khoản SimpleFIN! Các giao dịch và tài sản của bạn đang được nhập trong nền."
stale_accounts_processed: "Tài khoản cũ: %{deleted} đã xóa, %{moved} đã chuyển."
stale_accounts_errors:
one: "%{count} thao tác tài khoản cũ thất bại. Kiểm tra nhật ký để biết chi tiết."
other: "%{count} thao tác tài khoản cũ thất bại. Kiểm tra nhật ký để biết chi tiết."
simplefin_item:
add_new: Thêm kết nối mới
confirm_accept: Xóa kết nối
confirm_body: Thao tác này sẽ xóa vĩnh viễn tất cả tài khoản trong nhóm này và tất cả dữ liệu liên quan.
confirm_title: Xóa kết nối SimpleFIN?
delete: Xóa
deletion_in_progress: "(đang xóa...)"
error: Đã xảy ra lỗi khi đồng bộ dữ liệu
no_accounts_description: Kết nối này chưa có tài khoản nào được đồng bộ.
no_accounts_title: Không tìm thấy tài khoản
requires_update: Kết nối lại
setup_needed: Tài khoản mới sẵn sàng để thiết lập
setup_description: Chọn loại tài khoản cho các tài khoản SimpleFIN mới được nhập.
setup_action: Thiết lập tài khoản mới
setup_accounts_menu: Thiết lập tài khoản
more_accounts_available:
one: "%{count} tài khoản khác có sẵn để thiết lập"
other: "%{count} tài khoản khác có sẵn để thiết lập"
accounts_skipped_tooltip: "Một số tài khoản đã bị bỏ qua do lỗi trong quá trình đồng bộ"
accounts_skipped_label: "Đã bỏ qua: %{count}"
rate_limited_ago: "Bị giới hạn tốc độ (%{time} trước)"
rate_limited_recently: "Bị giới hạn tốc độ gần đây"
status: Đồng bộ lần cuối %{timestamp} trước
status_never: Chưa bao giờ đồng bộ
status_with_summary: "Đồng bộ lần cuối %{timestamp} trước • %{summary}"
syncing: Đang đồng bộ...
update: Cập nhật
stale_pending_note: "(loại trừ khỏi ngân sách)"
stale_pending_accounts: "trong: %{accounts}"
reconciled_details_note: "(xem tóm tắt đồng bộ để biết chi tiết)"
duplicate_accounts_skipped: "Một số tài khoản đã bị bỏ qua vì trùng lặp — dùng 'Liên kết tài khoản hiện có' để hợp nhất."
select_existing_account:
title: "Liên kết %{account_name} với SimpleFIN"
description: Chọn tài khoản SimpleFIN để liên kết với tài khoản hiện có của bạn
cancel: Hủy
link_account: Liên kết tài khoản
no_accounts_found: "Không tìm thấy tài khoản SimpleFIN nào cho %{moniker} này."
wait_for_sync: Nếu bạn vừa kết nối hoặc đồng bộ, hãy thử lại sau khi quá trình đồng bộ hoàn tất.
unlink_to_move: Để chuyển liên kết, trước tiên hãy hủy liên kết từ menu thao tác của tài khoản.
all_accounts_already_linked: Tất cả tài khoản SimpleFIN có vẻ đã được liên kết.
currently_linked_to: "Hiện đang liên kết với: %{account_name}"
link_existing_account:
success: Tài khoản đã được liên kết thành công với SimpleFIN
errors:
only_manual: Chỉ tài khoản thủ công mới có thể được liên kết
different_provider: Tài khoản này đang liên kết với nhà cung cấp khác. Hãy hủy liên kết từ nhà cung cấp đó trước, sau đó liên kết với SimpleFIN.
invalid_simplefin_account: Tài khoản SimpleFIN được chọn không hợp lệ
dismiss_replacement_suggestion:
dismissed: Đề xuất thay thế đã bị bỏ qua
replacement_prompt:
title: "Thẻ %{institution} của bạn có thể đã được thay thế"
description: '"%{account_name}" được liên kết với "%{old_name}", vốn không có hoạt động gần đây và số dư bằng không. Một thẻ mới, "%{new_name}", hiện đang hoạt động tại cùng tổ chức. Liên kết lại để giữ nguyên lịch sử của bạn.'
relink: Liên kết lại với thẻ mới
confirm_title: Liên kết lại với thẻ mới?
confirm_body: '"%{account_name}" sẽ được liên kết với "%{new_name}". Lịch sử giao dịch vẫn được giữ; các giao dịch tương lai sẽ đến từ thẻ mới.'
dismiss_aria: Bỏ qua đề xuất thay thế
reconciled_status:
message:
one: "%{count} giao dịch đang chờ trùng lặp đã được đối soát"
other: "%{count} giao dịch đang chờ trùng lặp đã được đối soát"
stale_pending_status:
message:
one: "%{count} giao dịch đang chờ cũ hơn %{days} ngày"
other: "%{count} giao dịch đang chờ cũ hơn %{days} ngày"

View File

@@ -0,0 +1,191 @@
vi:
snaptrade_items:
default_name: "Kết nối SnapTrade"
link_accounts:
use_setup_flow: Sử dụng luồng thiết lập tài khoản
create:
success: "Đã cấu hình SnapTrade thành công."
update:
success: "Đã cập nhật cấu hình SnapTrade thành công."
destroy:
success: "Đã lên lịch xóa kết nối SnapTrade."
connect:
decryption_failed: "Không thể đọc thông tin xác thực SnapTrade. Vui lòng xóa và tạo lại kết nối này."
connection_failed: "Kết nối SnapTrade thất bại: %{message}"
callback:
success: "Đã kết nối brokerage! Vui lòng chọn tài khoản muốn liên kết."
no_item: "Không tìm thấy cấu hình SnapTrade."
complete_account_setup:
success:
one: "Đã liên kết thành công %{count} tài khoản."
other: "Đã liên kết thành công %{count} tài khoản."
partial_success:
one: "Đã liên kết %{count} tài khoản. %{failed_count} liên kết thất bại."
other: "Đã liên kết %{count} tài khoản. %{failed_count} liên kết thất bại."
link_failed: "Liên kết tài khoản thất bại: %{errors}"
no_accounts: "Không có tài khoản nào được chọn để liên kết."
preload_accounts:
not_configured: "SnapTrade chưa được cấu hình."
select_accounts:
not_configured: "SnapTrade chưa được cấu hình."
select_existing_account:
not_found: "Không tìm thấy tài khoản hoặc cấu hình SnapTrade."
title: "Liên kết với tài khoản SnapTrade"
header: "Liên kết tài khoản hiện có"
subtitle: "Chọn tài khoản SnapTrade để liên kết"
no_accounts: "Không có tài khoản SnapTrade chưa liên kết."
connect_hint: "Bạn có thể cần kết nối brokerage trước."
settings_link: "Đi đến Cài đặt nhà cung cấp"
linking_to: "Đang liên kết với tài khoản:"
balance_label: "Số dư:"
link_button: "Liên kết"
cancel_button: "Hủy"
link_existing_account:
success: "Đã liên kết thành công với tài khoản SnapTrade."
failed: "Liên kết tài khoản thất bại: %{message}"
not_found: "Không tìm thấy tài khoản."
connections:
unknown_brokerage: "Brokerage không xác định"
delete_connection:
success: "Đã xóa kết nối thành công. Một slot đã được giải phóng."
failed: "Xóa kết nối thất bại: %{message}"
missing_authorization_id: "Thiếu ID ủy quyền"
api_deletion_failed: "Không thể xóa kết nối khỏi SnapTrade - thiếu thông tin xác thực. Kết nối có thể vẫn tồn tại trong tài khoản SnapTrade của bạn."
delete_orphaned_user:
success: "Đã xóa đăng ký mồ côi thành công."
failed: "Xóa đăng ký mồ côi thất bại."
setup_accounts:
title: "Thiết lập tài khoản SnapTrade"
header: "Thiết lập tài khoản SnapTrade của bạn"
subtitle: "Chọn tài khoản brokerage muốn liên kết"
syncing: "Đang lấy tài khoản của bạn..."
loading: "Đang tải tài khoản từ SnapTrade..."
loading_hint: "Nhấn Làm mới để kiểm tra tài khoản."
refresh: "Làm mới"
info_title: "Dữ liệu đầu tư SnapTrade"
info_holdings: "Tài sản nắm giữ với giá hiện tại và số lượng"
info_cost_basis: "Cơ sở chi phí theo vị thế (nếu có)"
info_activities: "Lịch sử giao dịch với nhãn hoạt động (Mua, Bán, Cổ tức, v.v.)"
info_history: "Lịch sử giao dịch tối đa 3 năm"
free_tier_note: "Gói miễn phí SnapTrade cho phép 5 kết nối brokerage. Kiểm tra bảng điều khiển SnapTrade để xem mức sử dụng hiện tại."
no_accounts_title: "Không tìm thấy tài khoản"
no_accounts_message: "Không tìm thấy tài khoản brokerage nào. Điều này có thể xảy ra nếu bạn đã hủy kết nối hoặc brokerage không được hỗ trợ."
try_again: "Kết nối Brokerage"
back_to_settings: "Quay lại Cài đặt"
available_accounts: "Tài khoản có sẵn"
balance_label: "Số dư:"
account_number: "Tài khoản:"
sync_start_date_label: "Nhập giao dịch từ:"
sync_start_date_help: "Để trống để lấy toàn bộ lịch sử có sẵn"
create_button: "Tạo tài khoản đã chọn"
cancel_button: "Hủy"
creating: "Đang tạo tài khoản..."
done_button: "Xong"
or_link_existing: "Hoặc liên kết với tài khoản hiện có thay vì tạo mới:"
select_account: "Chọn một tài khoản..."
link_button: "Liên kết"
linked_accounts: "Đã liên kết"
linked_to: "Liên kết với:"
snaptrade_item:
accounts_need_setup:
one: "%{count} tài khoản cần thiết lập"
other: "%{count} tài khoản cần thiết lập"
deletion_in_progress: "Đang xóa..."
syncing: "Đang đồng bộ..."
requires_update: "Kết nối cần cập nhật"
error: "Lỗi đồng bộ"
status: "Đồng bộ lần cuối %{timestamp} trước - %{summary}"
status_never: "Chưa bao giờ đồng bộ"
reconnect: "Kết nối lại"
connect_brokerage: "Kết nối Brokerage"
add_another_brokerage: "Kết nối thêm brokerage"
delete: "Xóa"
setup_needed: "Tài khoản cần thiết lập"
setup_description: "Một số tài khoản từ SnapTrade cần được liên kết với tài khoản Sure."
setup_action: "Thiết lập tài khoản"
setup_accounts_menu: "Thiết lập tài khoản"
manage_connections: "Quản lý kết nối"
more_accounts_available:
one: "%{count} tài khoản khác có sẵn để thiết lập"
other: "%{count} tài khoản khác có sẵn để thiết lập"
no_accounts_title: "Chưa phát hiện tài khoản nào"
no_accounts_description: "Kết nối brokerage để nhập tài khoản đầu tư của bạn."
providers:
snaptrade:
name: "SnapTrade"
connection_description: "Kết nối với brokerage qua SnapTrade (hỗ trợ 25+ sàn)"
description: "SnapTrade kết nối với 25+ brokerage lớn (Fidelity, Vanguard, Schwab, Robinhood, v.v.) và cung cấp lịch sử giao dịch đầy đủ với nhãn hoạt động và cơ sở chi phí."
setup_title: "Hướng dẫn thiết lập:"
step_1_html: "Tạo tài khoản tại <a href=\"https://dashboard.snaptrade.com\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-primary underline\">dashboard.snaptrade.com</a>"
step_2: "Sao chép Client ID và Consumer Key từ bảng điều khiển"
step_3: "Nhập thông tin xác thực bên dưới và nhấn Lưu"
step_4: "Đi đến trang Tài khoản và dùng 'Kết nối thêm brokerage' để liên kết tài khoản đầu tư"
free_tier_warning: "Gói miễn phí SnapTrade hỗ trợ 5 kết nối brokerage. Nâng cấp trên SnapTrade để có thêm."
client_id_label: "Client ID"
client_id_placeholder: "Nhập Client ID SnapTrade của bạn"
client_id_update_placeholder: "Nhập Client ID mới để cập nhật"
consumer_key_label: "Consumer Key"
consumer_key_placeholder: "Nhập Consumer Key SnapTrade của bạn"
consumer_key_update_placeholder: "Nhập Consumer Key mới để cập nhật"
save_button: "Lưu cấu hình"
update_button: "Cập nhật cấu hình"
status_connected:
one: "%{count} tài khoản từ SnapTrade"
other: "%{count} tài khoản từ SnapTrade"
status_needs_registration: "Đã lưu thông tin xác thực. Hoàn tất thiết lập để kết nối brokerage."
needs_setup:
one: "%{count} cần thiết lập"
other: "%{count} cần thiết lập"
status_ready: "Sẵn sàng kết nối brokerage"
setup_accounts_button: "Thiết lập tài khoản"
connect_button: "Kết nối Brokerage"
connected_brokerages: "Đã kết nối:"
manage_connections: "Quản lý kết nối"
loading_connections: "Đang tải kết nối..."
connections_error: "Tải kết nối thất bại: %{message}"
accounts_count:
one: "%{count} tài khoản"
other: "%{count} tài khoản"
orphaned_connection: "Kết nối mồ côi (không đồng bộ cục bộ)"
needs_linking: "cần liên kết"
no_connections: "Không tìm thấy kết nối brokerage nào."
delete_connection: "Xóa"
delete_connection_title: "Xóa kết nối Brokerage?"
delete_connection_body: "Thao tác này sẽ xóa vĩnh viễn kết nối %{brokerage} khỏi SnapTrade. Tất cả tài khoản từ brokerage này sẽ bị hủy liên kết. Bạn cần kết nối lại để đồng bộ các tài khoản này."
delete_connection_confirm: "Xóa kết nối"
orphaned_users_title:
one: "%{count} đăng ký mồ côi"
other: "%{count} đăng ký mồ côi"
orphaned_users_description: "Đây là các đăng ký người dùng SnapTrade cũ đang sử dụng slot kết nối của bạn. Xóa chúng để giải phóng slot."
orphaned_user: "Đăng ký mồ côi"
delete_orphaned_user: "Xóa"
delete_orphaned_user_title: "Xóa đăng ký mồ côi?"
delete_orphaned_user_body: "Thao tác này sẽ xóa vĩnh viễn người dùng SnapTrade mồ côi này và tất cả kết nối brokerage của họ, giải phóng slot kết nối."
delete_orphaned_user_confirm: "Xóa đăng ký"
snaptrade_item:
sync_status:
no_accounts: "Không tìm thấy tài khoản"
synced:
one: "%{count} tài khoản đã đồng bộ"
other: "%{count} tài khoản đã đồng bộ"
synced_with_setup: "%{linked} đã đồng bộ, %{unlinked} cần thiết lập"
institution_summary:
none: "Chưa kết nối tổ chức nào"
count:
one: "%{count} tổ chức"
other: "%{count} tổ chức"
brokerage_summary:
none: "Chưa kết nối brokerage nào"
count:
one: "%{count} brokerage"
other: "%{count} brokerage"
syncer:
discovering: "Đang phát hiện tài khoản..."
importing: "Đang nhập tài khoản từ SnapTrade..."
processing: "Đang xử lý tài sản nắm giữ và hoạt động..."
calculating: "Đang tính toán số dư..."
checking_config: "Đang kiểm tra cấu hình tài khoản..."
needs_setup: "%{count} tài khoản cần thiết lập..."
activities_fetching_async: "Các hoạt động đang được lấy trong nền. Quá trình này có thể mất đến một phút đối với kết nối brokerage mới."

Some files were not shown because too many files have changed in this diff Show More