Added Vietnamese translations (#1758)

This commit is contained in:
Kevin Papst
2020-06-04 16:21:12 +02:00
committed by GitHub
parent 3b6df1cb84
commit da5563960b
29 changed files with 1990 additions and 14 deletions

View File

@@ -18,10 +18,10 @@ jobs:
with:
php-version: ${{ matrix.php }}
coverage: pcov
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, mysql, zip, gd, ldap
- run: |
composer install --no-progress
composer require zendframework/zend-ldap
composer require laminas/laminas-ldap
- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Run tests

View File

@@ -18,7 +18,7 @@ jobs:
with:
php-version: ${{ matrix.php }}
coverage: none
extensions: intl
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, mysql, zip, gd, ldap
tools: cs2pr:1.1.0
- run: composer install --no-progress
- run: composer validate --no-check-all --strict

View File

@@ -28,10 +28,10 @@ jobs:
with:
php-version: ${{ matrix.php }}
coverage: none
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, mysql
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, mysql, zip, gd, ldap
- run: |
composer install --no-progress
composer require zendframework/zend-ldap
composer require laminas/laminas-ldap
- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Run unit tests

View File

@@ -33,6 +33,7 @@ require('select2/dist/js/i18n/ru');
require('select2/dist/js/i18n/sk');
require('select2/dist/js/i18n/sv');
require('select2/dist/js/i18n/tr');
require('select2/dist/js/i18n/vi');
require('select2/dist/js/i18n/zh-CN');
const Moment = require('moment');
@@ -59,6 +60,7 @@ require('moment/locale/ru');
require('moment/locale/sk');
require('moment/locale/sv');
require('moment/locale/tr');
require('moment/locale/vi');
require('moment/locale/zh-cn');
require('daterangepicker');

View File

@@ -24,6 +24,7 @@ require('fullcalendar/dist/locale/sk');
require('fullcalendar/dist/locale/sv');
require('fullcalendar/dist/locale/tr');
require('fullcalendar/dist/locale/zh-cn');
require('fullcalendar/dist/locale/vi');
require('fullcalendar/dist/locale/en-gb'); // the last imported file is used as fallback for locales that do not exist (like EO)
require('fullcalendar/dist/fullcalendar.min.css');

View File

@@ -2,7 +2,7 @@
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
locale: en
app_locales: ar|cs|de|de_CH|da|en|eo|es|eu|fr|he|hu|it|ja|ko|nl|pl|pt_BR|ro|ru|sk|sv|tr|zh_CN
app_locales: ar|cs|de|de_CH|da|en|eo|es|eu|fr|he|hu|it|ja|ko|nl|pl|pt_BR|ro|ru|sk|sv|tr|vi|zh_CN
services:
# default configuration for services in *this* file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -5,7 +5,7 @@
"build/runtime.664a9501.js",
"build/0.f7fae2b9.js",
"build/1.c24a9c6f.js",
"build/app.cfe6b394.js"
"build/app.6c4a170e.js"
],
"css": [
"build/app.a2628675.css"
@@ -42,7 +42,7 @@
"build/runtime.664a9501.js",
"build/0.f7fae2b9.js",
"build/1.c24a9c6f.js",
"build/calendar.5df1be1f.js"
"build/calendar.e07134af.js"
],
"css": [
"build/calendar.c8f3c1fd.css"
@@ -53,7 +53,7 @@
"build/runtime.664a9501.js": "sha384-xNNrNinl64G3nCUrIskgSjU0mUXXCB9lj6XCSInBTwxSKXk8uTMafnLHtdWdIGtd",
"build/0.f7fae2b9.js": "sha384-DR5A41RIECdWBd6xODR0b1hvGqcEYUyn9vNPreqK9VOCQWTF6bgxB4RVmqlOKilT",
"build/1.c24a9c6f.js": "sha384-JPoKdrVtBemSiVBoAnmSxLML7xXM9zYeuwOPYQv/kLzt/P4cmLY5r9gH8oaGRPFG",
"build/app.cfe6b394.js": "sha384-AaxJ85+hiKzIWDcbidWdo5g89hCQ3ld0k5Q3W9JCBY99fiHPYYIjHYGfNEJL4S3Y",
"build/app.6c4a170e.js": "sha384-ufY9u+2gN4IWz+QdbXxvILeX77+QL466MoGB0dM8wfXx7rK8j6epLN6Kmfi9I618",
"build/app.a2628675.css": "sha384-0MsxtEEys+bTKR6Qi9LvMRg21TPh2x7JxTdVFTmySyjct4BpB9xuffwyk1BDsZDe",
"build/invoice.50473330.js": "sha384-2BXic5Sgorf2tXai6zSAN4wLY2dbg06L03/xMKW6itMcszvtnRArKzfBh6DNcF3f",
"build/invoice.13d8ef4e.css": "sha384-B6RN/wZJToSBCZk2JeLokIqWEhbh+Eb9arYbt9dM+YoC2Z6PnCeTwTqSGyexWWJh",
@@ -61,7 +61,7 @@
"build/invoice-pdf.340721a4.css": "sha384-+dk8iSafBIWj8bKpeEAkhkOR6G6o2OyL1ZeGuaIHuECtidl5cqoGbLSw+yKfSc0e",
"build/2.a47ad919.js": "sha384-1h2P/tsl+bh8qgJd7S9irQHKuns7UATVxeFGLOCH85GPFXfAdRzgzx3nk5MrxzrV",
"build/chart.c9943f57.js": "sha384-I57c9DtU3AOG2kzKqIZkIu0hi1aGYHRZ5QG4LKC9+9slzJnAMttPGXoL2cQG3m6y",
"build/calendar.5df1be1f.js": "sha384-0NkVQh+MXR+RdPIdNePdbIUmqOGFa1wNDVRf4rv8Gw1FGoTdYTIh4S4eFKOF1C0B",
"build/calendar.e07134af.js": "sha384-id5HdTV6FU/sWZselGU7XBk6f+XU6QqQBbNSHAz0TiiLS1wVvV35gfkX6FyZQlxk",
"build/calendar.c8f3c1fd.css": "sha384-ta519W5+NY1a8FBh7rD4zORYTfUXCYTLci0Z25nf4BfodmuXqyPVNEe7dSe2/fRd"
}
}

View File

@@ -3,9 +3,9 @@
"build/1.c24a9c6f.js": "build/1.c24a9c6f.js",
"build/2.a47ad919.js": "build/2.a47ad919.js",
"build/app.css": "build/app.a2628675.css",
"build/app.js": "build/app.cfe6b394.js",
"build/app.js": "build/app.6c4a170e.js",
"build/calendar.css": "build/calendar.c8f3c1fd.css",
"build/calendar.js": "build/calendar.5df1be1f.js",
"build/calendar.js": "build/calendar.e07134af.js",
"build/chart.js": "build/chart.c9943f57.js",
"build/invoice.css": "build/invoice.13d8ef4e.css",
"build/invoice.js": "build/invoice.50473330.js",

43
translations/about.vi.xlf Normal file
View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="about.en.xlf">
<body>
<trans-unit id="about.title">
<source>about.title</source>
<target>Thông tin về Kimai</target>
</trans-unit>
<trans-unit id="support">
<source>support</source>
<target>Hỗ trợ</target>
</trans-unit>
<trans-unit id="website">
<source>website</source>
<target>Trang chủ</target>
</trans-unit>
<trans-unit id="help">
<source>help</source>
<target>Tài liệu</target>
</trans-unit>
<trans-unit id="tab.thanks">
<source>tab.thanks</source>
<target>Cảm ơn</target>
</trans-unit>
<trans-unit id="donate">
<source>donate</source>
<target>Quyên góp cho tính năng của Kimai</target>
</trans-unit>
<trans-unit id="published_under">
<source>published_under</source>
<target>%kimai% được xuất bản dựa trên</target>
</trans-unit>
<trans-unit id="special_thanks">
<source>special_thanks</source>
<target>Đặc biệt cảm ơn …</target>
</trans-unit>
<trans-unit id="library_authors">
<source>library_authors</source>
<target>… các tác giả của các thư viện phần mềm sau đây, Kimai sẽ không thể có được nếu không có bạn 👍</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="actions.en.xlf">
<body>
<trans-unit id="stop">
<source>stop</source>
<target>Dừng</target>
</trans-unit>
<trans-unit id="back">
<source>back</source>
<target>Trở lại</target>
</trans-unit>
<trans-unit id="edit">
<source>edit</source>
<target>Sửa</target>
</trans-unit>
<trans-unit id="trash">
<source>trash</source>
<target>Xóa</target>
</trans-unit>
<trans-unit id="report">
<source>report</source>
<target>Báo cáo</target>
</trans-unit>
<trans-unit id="repeat">
<source>repeat</source>
<target>Bắt đầu lại</target>
</trans-unit>
<trans-unit id="profile-stats">
<source>profile-stats</source>
<target>Hồ sơ</target>
</trans-unit>
<trans-unit id="settings">
<source>settings</source>
<target>Sở thích</target>
</trans-unit>
<trans-unit id="timesheet">
<source>timesheet</source>
<target>Bảng chấm công</target>
</trans-unit>
<trans-unit id="customer">
<source>customer</source>
<target>Lọc khách hàng</target>
</trans-unit>
<trans-unit id="project">
<source>project</source>
<target>Lọc dự án</target>
</trans-unit>
<trans-unit id="activity">
<source>activity</source>
<target>Lọc hoạt động</target>
</trans-unit>
<trans-unit id="copy">
<source>copy</source>
<target>Tạo bản sao</target>
</trans-unit>
<trans-unit id="home">
<source>home</source>
<target>Trang chủ</target>
</trans-unit>
<trans-unit id="create-project">
<source>create-project</source>
<target>Tạo dự án</target>
</trans-unit>
<trans-unit id="create-activity">
<source>create-activity</source>
<target>Tạo hoạt động</target>
</trans-unit>
<trans-unit id="create-timesheet">
<source>create-timesheet</source>
<target>Tạo bảng chấm công</target>
</trans-unit>
<trans-unit id="permissions">
<source>permissions</source>
<target>Phân quyền nhóm</target>
</trans-unit>
<trans-unit id="details">
<source>details</source>
<target>Hiện</target>
</trans-unit>
<trans-unit id="download">
<source>download</source>
<target>Tải xuống</target>
</trans-unit>
<trans-unit id="invoice.pending">
<source>invoice.pending</source>
<target>Chờ thanh toán</target>
</trans-unit>
<trans-unit id="invoice.paid">
<source>invoice.paid</source>
<target>Đã thanh toán hóa đơn</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="daterangepicker.en.xlf">
<body>
<trans-unit id="daterangepicker.today">
<source>daterangepicker.today</source>
<target>Hôm nay</target>
</trans-unit>
<trans-unit id="daterangepicker.yesterday">
<source>daterangepicker.yesterday</source>
<target>Ngày hôm qua</target>
</trans-unit>
<trans-unit id="daterangepicker.lastWeek">
<source>daterangepicker.lastWeek</source>
<target>Tuần rồi</target>
</trans-unit>
<trans-unit id="daterangepicker.thisWeek">
<source>daterangepicker.thisWeek</source>
<target>Tuần này</target>
</trans-unit>
<trans-unit id="daterangepicker.lastMonth">
<source>daterangepicker.lastMonth</source>
<target>Tháng rồi</target>
</trans-unit>
<trans-unit id="daterangepicker.thisMonth">
<source>daterangepicker.thisMonth</source>
<target>Tháng này</target>
</trans-unit>
<trans-unit id="daterangepicker.lastYear">
<source>daterangepicker.lastYear</source>
<target>Năm rồi</target>
</trans-unit>
<trans-unit id="daterangepicker.thisYear">
<source>daterangepicker.thisYear</source>
<target>Năm này</target>
</trans-unit>
<trans-unit id="daterangepicker.customRange">
<source>daterangepicker.customRange</source>
<target>Tùy chỉnh phạm vi</target>
</trans-unit>
</body>
</file>
</xliff>

47
translations/email.vi.xlf Normal file
View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="email.en.xlf">
<body>
<trans-unit id="button_copy_url_to_browser">
<source>button_copy_url_to_browser</source>
<target>Nếu nút không hoạt động, vui lòng sao chép &amp; dán URL vào trình duyệt của bạn: %url%</target>
</trans-unit>
<trans-unit id="automated_email_dont_answer">
<source>automated_email_dont_answer</source>
<target>Đây là một e-mail được tạo tự động. Xin đừng trả lời.</target>
</trans-unit>
<trans-unit id="registration.subject">
<source>registration.subject</source>
<target>Kích hoạt tài khoản của bạn</target>
</trans-unit>
<trans-unit id="registration.title">
<source>registration.title</source>
<target>Chào mừng %username%</target>
</trans-unit>
<trans-unit id="registration.button">
<source>registration.button</source>
<target>Kích hoạt tài khoản của bạn</target>
</trans-unit>
<trans-unit id="registration.intro">
<source>registration.intro</source>
<target>Bạn đã đăng ký theo dõi thời gian Kimai với email% email%. Bây giờ bạn phải kích hoạt tài khoản của mình trong vài giờ tới, trước khi liên kết hết hạn.</target>
</trans-unit>
<trans-unit id="reset.subject">
<source>reset.subject</source>
<target>Đặt lại mật khẩu của bạn</target>
</trans-unit>
<trans-unit id="reset.title">
<source>reset.title</source>
<target>Điều đó có thể xảy ra...</target>
</trans-unit>
<trans-unit id="reset.button">
<source>reset.button</source>
<target>Đặt lại mật khẩu của bạn</target>
</trans-unit>
<trans-unit id="reset.intro">
<source>reset.intro</source>
<target>... bạn quên mật khẩu? Đừng lo lắng: Kimai sẽ giúp bạn tạo một cái mới:</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="exceptions.en.xlf">
<body>
<trans-unit id="access.denied">
<source>access.denied</source>
<target>Truy cập đã bị từ chối</target>
</trans-unit>
<trans-unit id="stacktrace">
<source>stacktrace</source>
<target>Vấn đề xảy ra ở đây</target>
</trans-unit>
<trans-unit id="http_error.title">
<source>http_error.title</source>
<target>Lỗi</target>
</trans-unit>
<trans-unit id="http_error.description">
<source>http_error.description</source>
<target>Có cái gì đó không đúng</target>
</trans-unit>
<trans-unit id="http_error.suggestion">
<source>http_error.suggestion</source>
<target>
Xảy ra lỗi nghiêm trọng, vui lòng thử lại.
Bạn có thể đã tìm thấy sự cố phần mềm, vui lòng liên hệ với quản trị viên của bạn nếu sự cố vẫn còn.
</target>
</trans-unit>
<trans-unit id="http_error_404.description">
<source>http_error_404.description</source>
<target>Không tìm thấy trang</target>
</trans-unit>
<trans-unit id="http_error_404.suggestion">
<source>http_error_404.suggestion</source>
<target>
Chúng tôi không thể tìm thấy trang bạn đang tìm kiếm.
Vui lòng quay lại bảng điều khiển của bạn và bắt đầu lại.
</target>
</trans-unit>
<trans-unit id="http_error_403.description">
<source>http_error_403.description</source>
<target>Trang bị hạn chế</target>
</trans-unit>
<trans-unit id="http_error_403.suggestion">
<source>http_error_403.suggestion</source>
<target>
Xin lỗi, nhưng bạn không có đủ quyền để xem trang này.
                    Vui lòng nói chuyện với quản trị viên của bạn nếu bạn nghĩ rằng đây là một lỗi.
</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="export.en.xlf">
<body>
<trans-unit id="default.pdf.twig">
<source>default.pdf.twig</source>
<target>Tiêu chuẩn</target>
</trans-unit>
<trans-unit id="default-budget.pdf.twig">
<source>default-budget.pdf.twig</source>
<target>Với ngân sách còn lại</target>
</trans-unit>
<trans-unit id="default-internal.pdf.twig">
<source>default-internal.pdf.twig</source>
<target>Với giá nội bộ</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="flashmessages.en.xlf">
<body>
<trans-unit id="warning">
<source>warning</source>
<target>Cảnh báo</target>
</trans-unit>
<trans-unit id="timesheet.stop.success">
<source>timesheet.stop.success</source>
<target>Thời gian ghi đã dừng lại</target>
</trans-unit>
<trans-unit id="timesheet.stop.error">
<source>timesheet.stop.error</source>
<target>Không thể dừng ghi thời gian</target>
</trans-unit>
<trans-unit id="timesheet.start.success">
<source>timesheet.start.success</source>
<target>Ghi thời gian đã được bắt đầu</target>
</trans-unit>
<trans-unit id="timesheet.start.error">
<source>timesheet.start.error</source>
<target>Không thể bắt đầu ghi thời gian</target>
</trans-unit>
<trans-unit id="timesheet.start.exceeded_limit">
<source>timesheet.start.exceeded_limit</source>
<target>Đã đạt đến giới hạn của các bản ghi thời gian hoạt động, vui lòng dừng ít nhất một lần đo thời gian chạy trước.</target>
</trans-unit>
<trans-unit id="timesheet.locked.warning">
<source>timesheet.locked.warning</source>
<target>Bạn đang chỉnh sửa một bản ghi đã xuất</target>
</trans-unit>
<trans-unit id="action.update.success">
<source>action.update.success</source>
<target>Lưu thay đổi</target>
</trans-unit>
<trans-unit id="action.update.error">
<source>action.update.error</source>
<target>Thay đổi không thể được lưu: %reason%</target>
</trans-unit>
<trans-unit id="action.delete.success">
<source>action.delete.success</source>
<target>Mục đã bị xóa</target>
</trans-unit>
<trans-unit id="action.delete.error">
<source>action.delete.error</source>
<target>Mục nhập không thể bị xóa: %reason%</target>
</trans-unit>
<trans-unit id="invoice.first_template">
<source>invoice.first_template</source>
<target>Vui lòng tạo mẫu hóa đơn trước</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="invoice-calculator.en.xlf">
<body>
<trans-unit id="label.invoice_calculator">
<source>label.invoice_calculator</source>
<target>Tính tổng</target>
</trans-unit>
<trans-unit id="default">
<source>default</source>
<target>Mặc định: một mục cho mỗi bản</target>
</trans-unit>
<trans-unit id="short">
<source>short</source>
<target>Giờ: tổng hợp bản ghi, một mục nhập cho mỗi giờ</target>
</trans-unit>
<trans-unit id="user">
<source>user</source>
<target>Người dùng: một mục nhập cho mỗi người dùng</target>
</trans-unit>
<trans-unit id="activity">
<source>activity</source>
<target>Hoạt động: một mục nhập cho mỗi hoạt động</target>
</trans-unit>
<trans-unit id="project">
<source>project</source>
<target>Dự án: một mục nhập cho mỗi dự án</target>
</trans-unit>
<trans-unit id="date">
<source>date</source>
<target>Ngày: một mục nhập mỗi ngày (sử dụng ngày bắt đầu)</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="invoice-numbergenerator.en.xlf">
<body>
<trans-unit id="label.invoice_number_generator">
<source>label.invoice_number_generator</source>
<target>Tạo mã số hóa đơn</target>
</trans-unit>
<trans-unit id="date">
<source>date</source>
<target>Ngày</target>
</trans-unit>
<trans-unit id="default">
<source>default</source>
<target>Định dạng cấu hình</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="invoice-renderer.en.xlf">
<body>
<trans-unit id="label.invoice_renderer">
<source>label.invoice_renderer</source>
<target>Tài liệu hóa đơn</target>
</trans-unit>
<trans-unit id="default">
<source>default</source>
<target>Hóa đơn (mặc định)</target>
</trans-unit>
<trans-unit id="timesheet">
<source>timesheet</source>
<target>Bảng chấm công</target>
</trans-unit>
<trans-unit id="freelancer">
<source>freelancer</source>
<target>Freelancer</target>
</trans-unit>
<trans-unit id="open-spreadsheet">
<source>open-spreadsheet</source>
<target>Calc Spreadsheet</target>
</trans-unit>
<trans-unit id="spreadsheet">
<source>spreadsheet</source>
<target>Excel</target>
</trans-unit>
<trans-unit id="export">
<source>export</source>
<target>Xuất dữ liệu</target>
</trans-unit>
<trans-unit id="company">
<source>company</source>
<target>Hóa đơn công ty</target>
</trans-unit>
<trans-unit id="help.upload">
<source>help.upload</source>
<target>Chú ý: các tệp hiện có sẽ bị ghi đè. Các loại tệp được phép là: DOCX, ODS, XLSX.</target>
</trans-unit>
</body>
</file>
</xliff>

1153
translations/messages.vi.xlf Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="plugins.en.xlf">
<body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Tiện ích mở rộng</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Bạn có thể tăng cường chức năng của Kimai bằng các tiện ích mở rộng</target>
</trans-unit>
<trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source>
<target>Bạn chưa cài đặt phần mở rộng nào.</target>
</trans-unit>
<trans-unit id="plugin.marketplace">
<source>plugin.marketplace</source>
<target>Kimai marketplace</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="file.ext">
<header>
<tool tool-id="symfony" tool-name="Symfony"/>
</header>
<body>
<trans-unit id="baI_ZxO" resname="An authentication exception occurred.">
<source>An authentication exception occurred.</source>
<target>Có lỗi trong quá trình xác thực.</target>
</trans-unit>
<trans-unit id="OETylMq" resname="Authentication credentials could not be found.">
<source>Authentication credentials could not be found.</source>
<target>Thông tin dùng để xác thực không tìm thấy.</target>
</trans-unit>
<trans-unit id="3RJINQ0" resname="Authentication request could not be processed due to a system problem.">
<source>Authentication request could not be processed due to a system problem.</source>
<target>Yêu cầu xác thực không thể thực hiện do lỗi của hệ thống.</target>
</trans-unit>
<trans-unit id="qr0aiUo" resname="Invalid credentials.">
<source>Invalid credentials.</source>
<target>Thông tin dùng để xác thực không hợp lệ.</target>
</trans-unit>
<trans-unit id="zrJWK0F" resname="Cookie has already been used by someone else.">
<source>Cookie has already been used by someone else.</source>
<target>Cookie đã được dùng bởi người dùng khác.</target>
</trans-unit>
<trans-unit id="blC0fXX" resname="Not privileged to request the resource.">
<source>Not privileged to request the resource.</source>
<target>Không được phép yêu cầu tài nguyên.</target>
</trans-unit>
<trans-unit id="dLzMRPR" resname="Invalid CSRF token.">
<source>Invalid CSRF token.</source>
<target>Mã CSRF không hợp lệ.</target>
</trans-unit>
<trans-unit id="PhhlLem" resname="No authentication provider found to support the authentication token.">
<source>No authentication provider found to support the authentication token.</source>
<target>Không tìm thấy nhà cung cấp dịch vụ xác thực nào cho mã xác thực mà bạn sử dụng.</target>
</trans-unit>
<trans-unit id="v_RS21A" resname="No session available, it either timed out or cookies are not enabled.">
<source>No session available, it either timed out or cookies are not enabled.</source>
<target>Không tìm thấy phiên làm việc. Phiên làm việc hoặc cookie có thể bị tắt.</target>
</trans-unit>
<trans-unit id="EYCKpDH" resname="No token could be found.">
<source>No token could be found.</source>
<target>Không tìm thấy mã token.</target>
</trans-unit>
<trans-unit id="z3cOUZo" resname="Username could not be found.">
<source>Username could not be found.</source>
<target>Không tìm thấy tên người dùng.</target>
</trans-unit>
<trans-unit id="By5eLYM" resname="Account has expired.">
<source>Account has expired.</source>
<target>Tài khoản đã hết hạn.</target>
</trans-unit>
<trans-unit id="YfZhiuA" resname="Credentials have expired.">
<source>Credentials have expired.</source>
<target>Thông tin xác thực đã hết hạn.</target>
</trans-unit>
<trans-unit id="NrSSfLs" resname="Account is disabled.">
<source>Account is disabled.</source>
<target>Tài khoản bị tạm ngừng.</target>
</trans-unit>
<trans-unit id="O5ZyxHr" resname="Account is locked.">
<source>Account is locked.</source>
<target>Tài khoản bị khóa.</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,211 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="system-configuration.en.xlf">
<body>
<trans-unit id="title">
<source>title</source>
<target>Cài đặt</target>
</trans-unit>
<trans-unit id="subtitle">
<source>subtitle</source>
<target>phụ đề</target>
</trans-unit>
<trans-unit id="timesheet">
<source>timesheet</source>
<target>Bảng chấm công</target>
</trans-unit>
<trans-unit id="invoice">
<source>invoice</source>
<target>Hóa đơn</target>
</trans-unit>
<trans-unit id="form_customer">
<source>form_customer</source>
<target>Tạo giá trị mặc định của khách hàng</target>
</trans-unit>
<trans-unit id="form_user">
<source>form_user</source>
<target>Giá trị mặc định của người dùng</target>
</trans-unit>
<trans-unit id="theme">
<source>theme</source>
<target>Chủ đề</target>
</trans-unit>
<trans-unit id="calendar">
<source>calendar</source>
<target>Lịch</target>
</trans-unit>
<trans-unit id="label.theme.markdown_content">
<source>label.theme.markdown_content</source>
<target>Cho phép đánh dấu định dạng trong mô tả và nhận xét</target>
</trans-unit>
<trans-unit id="label.theme.tags_create">
<source>label.theme.tags_create</source>
<target>Thẻ: sử dụng tìm kiếm tự động hoàn thành và cho phép tạo thẻ</target>
</trans-unit>
<trans-unit id="label.timesheet.mode">
<source>label.timesheet.mode</source>
<target>Chế độ theo dõi thời gian</target>
</trans-unit>
<trans-unit id="label.timesheet.mode_default">
<source>label.timesheet.mode_default</source>
<target>[Mặc định] thời gian bắt đầu và kết thúc có thể được chỉnh sửa</target>
</trans-unit>
<trans-unit id="label.timesheet.mode_duration_only">
<source>label.timesheet.mode_duration_only</source>
<target>[Thời lượng] thay thế thời gian kết thúc dựa vào thời lượng</target>
</trans-unit>
<trans-unit id="label.timesheet.mode_duration_fixed_begin">
<source>label.timesheet.mode_duration_fixed_begin</source>
<target>[Thời lượng] thời gian bắt đầu cố định có thể định cấu hình, chỉ có thể thay đổi thời lượng</target>
</trans-unit>
<trans-unit id="label.timesheet.mode_punch">
<source>label.timesheet.mode_punch</source>
<target>[Đồng hồ thời gian] Người dùng có thể bắt đầu và dừng các bản ghi, nhưng không thể chỉnh sửa thời gian hoặc thời lượng</target>
</trans-unit>
<trans-unit id="label.timesheet.rules.allow_future_times">
<source>label.timesheet.rules.allow_future_times</source>
<target>Cho phép thời gian trong tương lai</target>
</trans-unit>
<trans-unit id="label.timesheet.active_entries.hard_limit">
<source>label.timesheet.active_entries.hard_limit</source>
<target>Số lượng cho phép của các mục thời gian chạy đồng thời</target>
</trans-unit>
<trans-unit id="label.timesheet.active_entries.soft_limit">
<source>label.timesheet.active_entries.soft_limit</source>
<target>Số mục thời gian chạy mà cảnh báo được hiển thị</target>
</trans-unit>
<trans-unit id="label.theme.autocomplete_chars">
<source>label.theme.autocomplete_chars</source>
<target>Số lượng chữ cái tối thiểu để bắt đầu tự động hoàn thành</target>
</trans-unit>
<trans-unit id="label.calendar.week_numbers">
<source>label.calendar.week_numbers</source>
<target>Hiển thị số tuần</target>
</trans-unit>
<trans-unit id="label.calendar.weekends">
<source>label.calendar.weekends</source>
<target>Hiển thị cuối tuần</target>
</trans-unit>
<trans-unit id="label.calendar.businessHours.begin">
<source>label.calendar.businessHours.begin</source>
<target>Bắt đầu giờ làm việc bình thường (sẽ được tô sáng)</target>
</trans-unit>
<trans-unit id="label.calendar.businessHours.end">
<source>label.calendar.businessHours.end</source>
<target>Kết thúc giờ làm việc bình thường (sẽ được tô sáng)</target>
</trans-unit>
<trans-unit id="label.calendar.visibleHours.begin">
<source>label.calendar.visibleHours.begin</source>
<target>Bắt đầu phạm vi thời gian có thể nhìn thấy</target>
</trans-unit>
<trans-unit id="label.calendar.visibleHours.end">
<source>label.calendar.visibleHours.end</source>
<target>Kết thúc phạm vi thời gian có thể nhìn thấy</target>
</trans-unit>
<trans-unit id="label.calendar.slot_duration">
<source>label.calendar.slot_duration</source>
<target>Thời lượng thời gian cho chế độ xem theo tuần và ngày (định dạng: hh: mm: ss)</target>
</trans-unit>
<trans-unit id="branding">
<source>branding</source>
<target>Thương hiệu</target>
</trans-unit>
<trans-unit id="label.theme.branding.logo">
<source>label.theme.branding.logo</source>
<target>Logo (URL hình ảnh, thay thế công ty trong màn hình đăng nhập</target>
</trans-unit>
<trans-unit id="label.theme.branding.company">
<source>label.theme.branding.company</source>
<target>Công ty</target>
</trans-unit>
<trans-unit id="label.theme.branding.mini">
<source>label.theme.branding.mini</source>
<target>Logo nhỏ (thanh bên bị sập)</target>
</trans-unit>
<trans-unit id="label.theme.branding.title">
<source>label.theme.branding.title</source>
<target>Tiêu đề trình duyệt</target>
</trans-unit>
<trans-unit id="rounding">
<source>rounding</source>
<target>Thời gian làm tròn</target>
</trans-unit>
<trans-unit id="label.timesheet.rounding.default.begin">
<source>label.timesheet.rounding.default.begin</source>
<target>Làm tròn thời gian bắt đầu tính bằng phút (0 = đã hủy kích hoạt)</target>
</trans-unit>
<trans-unit id="label.timesheet.rounding.default.end">
<source>label.timesheet.rounding.default.end</source>
<target>Làm tròn thời gian kết thúc tính bằng phút (0 = đã hủy kích hoạt)</target>
</trans-unit>
<trans-unit id="label.timesheet.rounding.default.duration">
<source>label.timesheet.rounding.default.duration</source>
<target>Làm tròn thời lượng tính bằng phút (0 = đã hủy kích hoạt)</target>
</trans-unit>
<trans-unit id="label.timesheet.rounding.default.mode">
<source>label.timesheet.rounding.default.mode</source>
<target>Chế độ làm tròn</target>
</trans-unit>
<trans-unit id="label.timesheet.rounding.default.days">
<source>label.timesheet.rounding.default.days</source>
<target>Các ngày trong tuần khi làm tròn sẽ được áp dụng</target>
</trans-unit>
<trans-unit id="Monday">
<source>Monday</source>
<target>Thứ hai</target>
</trans-unit>
<trans-unit id="Tuesday">
<source>Tuesday</source>
<target>Thứ 3</target>
</trans-unit>
<trans-unit id="Wednesday">
<source>Wednesday</source>
<target>Thứ 4</target>
</trans-unit>
<trans-unit id="Thursday">
<source>Thursday</source>
<target>Thứ 5</target>
</trans-unit>
<trans-unit id="Friday">
<source>Friday</source>
<target>Thứ 6</target>
</trans-unit>
<trans-unit id="Saturday">
<source>Saturday</source>
<target>Thứ 7</target>
</trans-unit>
<trans-unit id="Sunday">
<source>Sunday</source>
<target>Chủ nhật</target>
</trans-unit>
<trans-unit id="Ceil">
<source>Ceil</source>
<target>Ceil: bắt đầu, kết thúc và thời lượng sẽ được làm tròn lên</target>
</trans-unit>
<trans-unit id="Closest">
<source>Closest</source>
<target>Gần nhất: làm tròn toán học đến giá trị gần nhất</target>
</trans-unit>
<trans-unit id="Default">
<source>Default</source>
<target>Tiêu chuẩn: bắt đầu sẽ được làm tròn xuống, kết thúc và thời gian lên</target>
</trans-unit>
<trans-unit id="Floor">
<source>Floor</source>
<target>Tầng: bắt đầu, kết thúc và thời lượng sẽ được làm tròn xuống</target>
</trans-unit>
<trans-unit id="label.timesheet.default_begin">
<source>label.timesheet.default_begin</source>
<target>Thời gian bắt đầu mặc định (không được sử dụng trong tất cả các chế độ định thời gian)</target>
</trans-unit>
<trans-unit id="label.simple_form">
<source>label.simple_form</source>
<target>Tìm kiếm đơn giản</target>
</trans-unit>
<trans-unit id="label.invoice.number_format">
<source>label.invoice.number_format</source>
<target>Định dạng số hóa đơn</target>
</trans-unit>
</body>
</file>
</xliff>

11
translations/tags.vi.xlf Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="tags.en.xlf">
<body>
<trans-unit id="tags.title">
<source>tags.title</source>
<target>Thẻ</target>
</trans-unit>
</body>
</file>
</xliff>

35
translations/teams.vi.xlf Normal file
View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="teams.en.xlf">
<body>
<trans-unit id="teams.title">
<source>teams.title</source>
<target>Nhóm</target>
</trans-unit>
<trans-unit id="teams.project_access">
<source>teams.project_access</source>
<target>Cấp quyền truy cập vào các dự án</target>
</trans-unit>
<trans-unit id="teams.customer_access">
<source>teams.customer_access</source>
<target>Cấp quyền truy cập vào khách hàng</target>
</trans-unit>
<trans-unit id="team.visibility_global">
<source>team.visibility_global</source>
<target>Hiển thị cho mọi người, vì chưa có nhóm nào được chỉ định.</target>
</trans-unit>
<trans-unit id="team.visibility_restricted">
<source>team.visibility_restricted</source>
<target>Chỉ hiển thị cho các nhóm sau và tất cả quản trị viên.</target>
</trans-unit>
<trans-unit id="team.project_visibility_inherited">
<source>team.project_visibility_inherited</source>
<target>Dự án có quyền truy cập hạn chế, vì quyền của nhóm được đặt cho khách hàng.</target>
</trans-unit>
<trans-unit id="team.create_default">
<source>team.create_default</source>
<target>Tạo một nhóm mới để giới hạn quyền truy cập</target>
</trans-unit>
</body>
</file>
</xliff>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="validators.en.xlf">
<body>
<trans-unit id="This value is not a valid role.">
<source>This value is not a valid role.</source>
<target>Giá trị này không hợp lệ.</target>
</trans-unit>
<trans-unit id="End date must not be earlier then start date.">
<source>End date must not be earlier then start date.</source>
<target>Ngày kết thúc không được sớm hơn ngày bắt đầu.</target>
</trans-unit>
<trans-unit id="The begin date cannot be in the future.">
<source>The begin date cannot be in the future.</source>
<target>Ngày bắt đầu không thể trong tương lai.</target>
</trans-unit>
</body>
</file>
</xliff>