From 4590564fea78b4aa247db0e2bd0ac400c60c8252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0ng=20Rio?= Date: Fri, 26 Oct 2018 09:44:23 +0700 Subject: [PATCH] Complete translate client to Vietnamese --- client/src/__locales/vi.js | 60 +++++++++++++++++++++- client/src/components/Filters/UserRules.js | 28 +++++----- client/src/components/Filters/index.js | 35 +++++++------ client/src/components/Logs/index.js | 44 ++++++++++------ client/src/components/Toasts/Toast.js | 3 +- client/src/components/ui/Modal.js | 16 +++--- 6 files changed, 132 insertions(+), 54 deletions(-) diff --git a/client/src/__locales/vi.js b/client/src/__locales/vi.js index 196ccab6..23643ca1 100644 --- a/client/src/__locales/vi.js +++ b/client/src/__locales/vi.js @@ -38,7 +38,7 @@ export default { 'A number of DNS requests to search engines for which Safe Search was enforced': 'Số yêu cầu DNS tới công cụ tìm kiếm đã chuyển thành tìm kiếm an toàn', 'Average processing time': 'Thời gian xử lý trung bình', 'Average time in milliseconds on processing a DNS request': 'Thời gian trung bình cho một yêu cầu DNS tính bằng mili giây', - // Setting + // Settings 'Block domains using filters and hosts files': 'Chặn tên miền sử dụng các bộ lọc và file hosts', 'You can setup blocking rules in the Filters settings.': 'Bạn có thể thiết lập quy tắc chặn tại cài đặt Bộ lọc.', 'Use AdGuard browsing security web service': 'Sử dụng dịch vụ bảo vệ duyệt web AdGuard', @@ -54,5 +54,63 @@ export default { 'If you keep this field empty, AdGuard Home will use Cloudflare DNS as an upstream. Use tls:// prefix for DNS over TLS servers.': 'Nếu bạn để trống mục này, AdGuard Home sẽ sử dụng Cloudflare DNS để tìm kiếm. Sử dụng tiền tố tls:// cho các máy chủ DNS dựa trên TLS.', 'Test upstreams': 'Kiểm tra', Apply: 'Áp dụng', + // Settings Toasts + 'Disabled filtering': 'Đã tắt chặn quảng cáo', + 'Enabled filtering': 'Đã bật chặn quảng cáo', + 'Disabled safebrowsing': 'Đã tắt bảo vệ duyệt web', + 'Enabled safebrowsing': 'Đã bật bảo vệ duyệt web', + 'Disabled parental control': 'Đã tắt quản lý của phụ huynh', + 'Enabled parental control': 'Đã bật quản lý của phụ huynh', + 'Disabled safe search': 'Đã tắt tìm kiếm an toàn', + 'Enabled safe search': 'Đã bật tìm kiếm an toàn', + // Filters + Enabled: 'Kích hoạt', + Name: 'Tên', + 'Filter URL': 'URL bộ lọc', + 'Rules count': 'Số quy tắc', + 'Last time updated': 'Cập nhật cuối', + Actions: 'Thao tác', + Delete: 'Xoá', + 'Filters and hosts blocklists': 'Danh sách bộ lọc và hosts', + 'AdGuard Home understands basic adblock rules and hosts files syntax.': 'AdGuard home hiểu các quy tắc chặn quảng cáo đơn giản và cú pháp file hosts', + 'No filters added': 'Không có bộ lọc nào được thêm', + 'Add filter': 'Thêm bộ lọc', + Cancel: 'Huỷ', + 'Enter name': 'Nhập tên', + 'Enter URL': 'Nhập URL', + 'Check updates': 'Kiểm tra cập nhật', + 'New filter subscription': 'Đăng ký bộ lọc mới', + 'Enter a valid URL to a filter subscription or a hosts file.': 'Nhập URL hợp lệ của bộ lọc hoặc file hosts', + 'Custom filtering rules': 'Quy tắc lọc tuỳ chỉnh', + 'Enter one rule on a line. You can use either adblock rules or hosts files syntax.': 'Nhập mỗi quy tắc 1 dòng. Có thể sử dụng quy tắc chặn quảng cáo hoặc cú pháp file host', + Examples: 'Ví dụ', + 'block access to the example.org domain and all its subdomains': 'Chặn truy cập tới tên miền example.org và tất cả tên miền con', + 'unblock access to the example.org domain and all its subdomains': 'Không chặn truy cập tới tên miền example.org và tất cả tên miền con', + 'AdGuard Home will now return 127.0.0.1 address for the example.org domain (but not its subdomains).': 'AdGuard Home sẽ phản hồi địa chỉ IP 127.0.0.1 cho tên miền example.org (không áp dụng tên miền con)', + '! Here goes a comment': '! Đây là một chú thích', + 'just a comment': 'Chỉ là một chú thích', + '# Also a comment': '# Cũng là một chú thích', + // Logs + Unblock: 'Bỏ chặn', + Block: 'Chặn', + Time: 'Thời gian', + 'Domain name': 'Tên miền', + Type: 'Loại', + Response: 'Phản hồi', + Empty: 'Rỗng', + 'Show all': 'Hiện tất cả', + 'Show filtered': 'Chỉ hiện đã chặn', + 'No logs found': 'Không có lịch sử truy vấn', + 'Disable log': 'Tắt lịch sử truy vấn', + 'Download log file': 'Tải tập tin lịch sử truy vấn', + Refresh: 'Làm mới', + 'Enable log': 'Bật lịch sử truy vấn', + 'Last 5000 DNS queries': '5000 truy vấn DNS gần nhất', + Previous: 'Trang trước', + Next: 'Trang sau', + 'Loading...': 'Đang tải...', + Page: 'Trang', + of: 'của', + rows: 'hàng', }, }; diff --git a/client/src/components/Filters/UserRules.js b/client/src/components/Filters/UserRules.js index 4bd71a8f..1f47cf9a 100644 --- a/client/src/components/Filters/UserRules.js +++ b/client/src/components/Filters/UserRules.js @@ -1,8 +1,9 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; +import { Trans, withNamespaces } from 'react-i18next'; import Card from '../ui/Card'; -export default class UserRules extends Component { +class UserRules extends Component { handleChange = (e) => { const { value } = e.currentTarget; this.props.handleRulesChange(value); @@ -14,10 +15,11 @@ export default class UserRules extends Component { }; render() { + const { t } = this.props; return (