Overview#Sails allows you to explicitly route URLs in several differen dịch - Overview#Sails allows you to explicitly route URLs in several differen Việt làm thế nào để nói

Overview#Sails allows you to explic

Overview
#
Sails allows you to explicitly route URLs in several different ways in your config/routes.js file. Every route configuration consists of an address and a target, for example:
'GET /foo/bar': 'FooController.bar'
^^^address^^^^ ^^^^^^target^^^^^^^
Route Address
#
The route address indicates what URL should be matched in order to apply the handler and options defined by the target. A route consists of an optional verb and a mandatory path:
'POST /foo/bar'
^verb^ ^^path^^
If no verb is specified, the route will match any CRUD method (GET, PUT, POST, DELETE or PATCH). If ALL is specified as the verb, the route will match any method.
Note the initial / in the path--all paths should start with one in order to work properly.
Wildcards and dynamic parameters
#
In addition to specifying a static path like foo/bar, you can use * as a wildcard:
'/*'
will match all paths, where as:
'/user/foo/*'
will match all paths that start with /user/foo.
Note: When using a route with a wildcard, such as '/*', be aware that this will also match requests to static assets (i.e. /js/dependencies/sails.io.js) and override them. To prevent this, consider using the skipAssets option described below.
You can capture the parts of the address that are matched by wildcards into named parameters by using the :paramName wildcard syntax instead of the *:
'/user/foo/bar/:name'
Will match almost the same URLs as:
'/user/foo/bar/*'
but will provide the value of the dynamic portions of the route URL to the route handler as parameter values. In this case: req.param('name').
Note that the wildcard (*) syntax matches slashes, where the URL pattern variable (:) syntax does not. So in the example above, given the route address GET /user/foo/bar/*, incoming requests with URLs like /user/foo/bar/baz/bing/bong/bang would match (whereas if you used the :name syntax, the same URL would not match.)
Regular expressions in addresses
#
In addition to the wildcard address syntax, you may also use Regular Expressions to define the URLs that a route should match. The syntax for defining an address with a regular expression is:
"r||"
That's the letter "r", followed by a pipe character |, a regular expression string without delimiters, another pipe, and a list of parameter names that should be mapped to parenthesized groups in the regular expression. For example:
"r|^/\d+/(\w+)/(\w+)$|foo,bar": "MessageController.myaction"
Will match /123/abc/def, running the myaction action of MessageController and supplying the values abc and def as req.param('foo') and req.param('bar'), respectively.
Note the double-backslash in \d and \w; this escaping is necessary for the regular expression to work correctly!
About route ordering
#
When using wildcards or regular expressions in your addresses, keep in mind that the ordering of your routes in config/routes.js matters; URLs are matched against addresses in the list from the top down. If you have two configurations in this order:
'/user': 'UserController.doSomething',
'/*' : 'CatchallController.doSomethingElse'
then a request to /user will not be matched by the second configuration unless the first configuration's handler calls next() in its code, which is discouraged (only policies should call next()). Unless you're doing something very advanced, it is safe to assume that every request will be handled by at most one route in your config/routes.js file.
Route Target
#
The address portion of a custom route specifies which URLs the route should match. The target portion specifies what Sails should do after the match is made. A target can take one of several different forms. In some cases you may want to chain multiple targets to a single address by placing them in an array, but in most cases each address will have only one target. The different types of targets are discussed below, followed by a discussion of the various options that can be applied to them.
Controller / action target syntax
#
The most common type of target is one which binds a route to a custom controller action. The following four routes are equivalent:
'GET /foo/go': 'FooController.myGoAction',
'GET /foo/go': 'Foo.myGoAction',
'GET /foo/go': {controller: "Foo", action: "myGoAction"},
'GET /foo/go': {controller: "FooController", action:"myGoAction"},
Each one maps GET /foo/go to the myGoAction action of the controller in api/controllers/FooController.js. If no such controller or action exists, Sails will output an error message and ignore the route. Otherwise, whenever a GET request to /foo/go is made, the code in that action will be run.
The controller and action names in this syntax are case-insensitive.
Note that the blueprint API adds several actions to your controllers by default (like "find", "create", "update" and "delete"), all of which are available for routing:
'GET /foo/go': 'UserController.find'
Assuming that your have a api/controllers/UserController.js file and a api/mod
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Tổng quan#Buồm cho phép bạn để rõ ràng định tuyến URL trong nhiều cách khác nhau trong tập tin config/routes.js của bạn. Mỗi lộ cấu hình bao gồm địa chỉ và mục tiêu, ví dụ:'Nhận ĐƯỢC /foo/bar': 'FooController.bar'^ ^ ^ địa chỉ ^ ^ ^ ^ ^ ^ target ^ ^ ^Địa chỉ đường#Địa chỉ đường cho biết URL nên phù hợp để áp dụng xử lý và các tùy chọn được xác định bởi các mục tiêu. Một con đường gồm có một động từ tùy chọn và một con đường bắt buộc:'Đăng BÀI/foo/bar'^ danh ^ ^ ^ con đường ^ ^Nếu không có động từ được chỉ định, các tuyến đường sẽ phù hợp với bất kỳ phương pháp TỐNG (GET, ĐẶT, bài ĐĂNG, XÓA hoặc VÁ). Nếu tất CẢ được quy định như động từ, các tuyến đường sẽ phù hợp với bất kỳ phương pháp.Lưu ý ban đầu của bạn / trong con đường--tất cả các đường dẫn nên bắt đầu với một trong những để làm việc đúng cách.Ký tự đại diện và các thông số năng động#Ngoài ra để xác định một đường dẫn tĩnh như foo/bar, bạn có thể sử dụng * là một ký tự đại diện:'/*'sẽ phù hợp với tất cả các đường dẫn, nơi như:' / người dùng/foo / *'sẽ phù hợp với tất cả các đường dẫn bắt đầu với /user/foo.Lưu ý: Khi sử dụng một tuyến đường với một ký tự đại diện, chẳng hạn như ' / *', phải nhận thức được rằng điều này cũng sẽ phù hợp với yêu cầu tài sản tĩnh (tức là /js/dependencies/sails.io.js) và thay thế chúng. Để ngăn chặn điều này, hãy xem xét sử dụng tùy chọn skipAssets được mô tả dưới đây.Bạn có thể nắm bắt các phần của địa chỉ được kết hợp bởi ký tự đại diện vào các tham số được đặt tên bằng cách sử dụng các: cú pháp ký paramName thay vì các *:' / người dùng/foo/bar /: tên 'Sẽ phù hợp với hầu hết các URL tương tự như:' / người dùng/foo/bar / *'nhưng sẽ cung cấp cho các giá trị của các phần năng động của tuyến URL để xử lý đường như là giá trị tham số. Trong trường hợp này: req.param('name').Lưu ý rằng cú pháp ký (*) khớp với slashes, nơi mà các URL mẫu biến (:) cú pháp không. Vì vậy trong ví dụ trên, đưa ra các tuyến đường địa chỉ NHẬN/người dùng/foo/bar / *, đến yêu cầu với URL như /user/foo/bar/baz/bing/bong/bang sẽ phù hợp (trong khi nếu bạn đã sử dụng các: cú pháp tên, URL đó sẽ không phù hợp.)Biểu thức thông thường trong địa chỉ#Ngoài ký tự đại diện địa chỉ cú pháp, bạn cũng có thể sử dụng biểu thức thông thường để xác định các URL có một lộ trình phải phù hợp với. Cú pháp để xác định một địa chỉ với một cụm từ thông dụng là:"r ||"Đó là chữ cái "r", theo sau là một nhân vật ống |, một chuỗi biểu thức thông thường mà không có delimiters, một đường ống, và một danh sách tên tham số nên được ánh xạ tới các nhóm parenthesized trong biểu thức thông thường. Ví dụ:"r | ^ / \d / (\w+)/ (\w+) $| foo, bar": "MessageController.myaction"Sẽ phù hợp với /123/abc/def, chạy các hành động myaction của MessageController và cung cấp các giá trị abc và def như req.param('foo') và req.param('bar'), tương ứng.Lưu ý dấu gạch chéo ngược đôi ở \d và \w; thoát khỏi này là cần thiết cho biểu thức thông thường để làm việc một cách chính xác!Về lộ trình đặt hàng#Khi sử dụng ký tự đại diện hoặc biểu thức thông thường trong địa chỉ của bạn, hãy nhớ thứ tự của các tuyến đường của bạn trong config/routes.js quan trọng; URL được kết hợp với các địa chỉ trong danh sách từ trên xuống. Nếu bạn có hai cấu hình theo thứ tự này:' / người dùng ': 'UserController.doSomething',' / *': 'CatchallController.doSomethingElse'sau đó yêu cầu /user sẽ không được kết hợp bởi cấu hình thứ hai trừ khi cấu hình đầu tiên xử lý cuộc gọi next() trong mã của nó, đó khuyến khích (chỉ chính sách nên gọi next()). Trừ khi bạn đang làm một cái gì đó rất tiên tiến, nó là an toàn để giả sử rằng mọi yêu cầu sẽ được xử lý bởi nhiều nhất một tuyến đường trong file config/routes.js của bạn.Lộ mục tiêu#Phần địa chỉ của một tuyến đường tùy chỉnh chỉ định URL mà con đường phải phù hợp với. Phần mục tiêu chỉ định buồm nên làm gì sau khi trận đấu được thực hiện. Một mục tiêu có thể mất một trong nhiều hình thức khác nhau. Trong một số trường hợp, bạn có thể chuỗi nhiều mục tiêu đến một địa chỉ duy nhất bằng cách đặt chúng trong một mảng, nhưng trong hầu hết trường hợp mỗi địa chỉ sẽ có chỉ có một mục tiêu. Các loại khác nhau của các mục tiêu được thảo luận dưới đây, sau đó là một cuộc thảo luận của các tùy chọn khác nhau có thể được áp dụng cho họ.Bộ điều khiển / hành động mục tiêu cú pháp#Loại phổ biến nhất của mục tiêu là một trong những liên kết với một tuyến đường đến một hành động điều khiển tùy chỉnh. Các tuyến đường sau bốn là tương đương:'Nhận ĐƯỢC /foo/go': 'FooController.myGoAction','Nhận ĐƯỢC /foo/go': 'Foo.myGoAction','Nhận ĐƯỢC /foo/go': {controller: "Foo", hành động: "myGoAction"},'Nhận ĐƯỢC /foo/go': {controller: "FooController", hành động: "myGoAction"},Mỗi một bản đồ có ĐƯỢC /foo/go hành động myGoAction của bộ điều khiển api/controllers/FooController.js. Nếu không có bộ điều khiển hoặc hành động tồn tại, cánh buồm sẽ ra một thông báo lỗi và bỏ qua các tuyến đường. Nếu không, bất cứ khi nào một GET yêu cầu để /foo/go được thực hiện, các mã trong hành động đó sẽ được chạy.Tên bộ điều khiển và hành động trong cú pháp này là quản.Lưu ý rằng kế hoạch chi tiết API cho biết thêm một vài hành động để điều khiển của bạn theo mặc định (giống như "tìm", "tạo ra", "Cập Nhật" và "xóa"), tất cả đều có sẵn cho việc định tuyến:'Nhận ĐƯỢC /foo/go': 'UserController.find'Giả sử rằng bạn có một tập tin api/controllers/UserController.js và một api/mod
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Tổng quan
#
Sails cho phép bạn một cách rõ ràng URL tuyến đường trong những cách khác nhau trong cấu hình của bạn / file routes.js. Mỗi cấu hình tuyến đường bao gồm một địa chỉ và một mục tiêu, ví dụ:
"GET / foo / bar ':' FooController.bar '
^^^ địa chỉ ^^^^ mục tiêu ^^^^^^ ^^^^^^^
Route địa chỉ
#
địa chỉ đường chỉ URL nào được xuất hiện để áp dụng xử lý và các tùy chọn định nghĩa của mục tiêu. Một lộ trình bao gồm một động từ tùy chọn và một con đường bắt buộc:
'POST / foo / bar'
^ ^ động từ ^^ con đường ^^
Nếu không có động từ được chỉ định, tuyến đường này sẽ phù hợp với bất kỳ phương pháp CRUD (GET, PUT, POST, DELETE hoặc PATCH ). Nếu tất cả được quy định như động từ, tuyến đường này sẽ phù hợp với bất kỳ phương pháp.
Lưu ý ban đầu / trong đường dẫn - tất cả các con đường nên bắt đầu với một để làm việc đúng cách.
Các kí hiệu và các thông số động
#
Ngoài việc xác định một con đường tĩnh như foo / bar, bạn có thể sử dụng * để đại diện:
'/ *'
sẽ phù hợp với tất cả các con đường, nơi như:
'/ người dùng / foo / *'
sẽ phù hợp với tất cả các đường dẫn bắt đầu bằng / người dùng / foo.
Lưu ý: Khi sử dụng một con đường với một ký tự đại diện, chẳng hạn như '/ *', ý thức được rằng điều này cũng sẽ phù hợp với các yêu cầu đối với tài sản tĩnh (tức là /js/dependencies/sails.io.js) và ghi đè lên chúng. Để ngăn chặn điều này, hãy xem xét sử dụng các tùy chọn skipAssets mô tả dưới đây.
Bạn có thể chụp các bộ phận của địa chỉ đó được kết hợp bởi các kí hiệu vào các thông số được đặt tên bằng: paramName cú pháp ký tự đại diện thay vì *:
'
/ người dùng / foo / bar /: tên ' sẽ phù hợp với hầu hết các URL tương tự như:
"/ user / foo / bar / *'
nhưng sẽ cung cấp các giá trị của các phần động của các URL đường để xử lý tuyến đường như các giá trị tham số. Trong trường hợp này: req.param ( 'name').
Lưu ý rằng các ký tự đại diện (*) cú pháp phù hợp với dấu gạch chéo, nơi mà các biến mẫu URL (:) cú pháp không. Vì vậy, trong ví dụ trên, cho địa chỉ đường GET / người dùng / foo / bar / *, các yêu cầu đến với URL như / người dùng / foo / bar / baz / bing / bong / nổ sẽ phù hợp (trong khi đó nếu bạn sử dụng: Tên cú pháp , cùng một URL sẽ không phù hợp.)
biểu thức thông thường trong các địa chỉ
#
Ngoài cú pháp địa chỉ ký tự đại diện, bạn cũng có thể sử dụng biểu thức thông thường để xác định các URL rằng một tuyến đường phải phù hợp.
|hãy nhớ rằng các đặt hàng của các tuyến đường của bạn trong config / routes.js vấn đề; URL được ghép nối với các địa chỉ trong danh sách từ trên xuống. Nếu bạn có hai cấu hình theo thứ tự này: '/ user': 'UserController.doSomething', '/ *': 'CatchallController.doSomethingElse' sau đó yêu cầu / người sử dụng sẽ không được kết hợp bởi các cấu hình thứ hai trừ các cuộc gọi xử lý các cấu hình đầu tiên của tiếp theo () trong mã của nó, đó là khuyến khích (chỉ có các chính sách nên gọi tiếp theo ()). Trừ khi bạn đang làm một cái gì đó rất cao, nó là an toàn để giả định rằng mọi yêu cầu sẽ được xử lý bởi ít nhất một tuyến đường trong config / tập tin routes.js của bạn. Route Target # Các phần địa chỉ của một tuyến đường tùy chỉnh định các URL đường phải phù hợp. Các phần mục tiêu chỉ định những gì Sails nên làm sau khi trận đấu được thực hiện. Một mục tiêu có thể dùng một trong các hình thức khác nhau. Trong một số trường hợp, bạn có thể muốn chuỗi nhiều mục tiêu để một địa chỉ duy nhất bằng cách đặt chúng trong một mảng, nhưng trong nhiều trường hợp mỗi địa chỉ sẽ chỉ có một mục tiêu. Các loại khác nhau của các mục tiêu được thảo luận dưới đây, theo sau là một cuộc thảo luận về các tùy chọn khác nhau có thể được áp dụng cho họ. Bộ điều khiển / hành động cú pháp mục tiêu # Các loại phổ biến nhất của mục tiêu là một trong đó gắn một con đường để một hành động điều khiển tùy chỉnh. Bốn tuyến đường sau là tương đương: "GET / foo / đi ':' FooController.myGoAction ', ' GET / foo / đi ':' Foo.myGoAction ', ' GET / foo / đi ': {controller:" Foo ", hành động: "myGoAction"}, ' GET / foo / đi ': {controller: "FooController", hành động: "myGoAction"}, Mỗi một bản đồ GET / foo / đi đến hành động myGoAction của bộ điều khiển trong api / controllers / FooController.js. Nếu không có điều khiển hoặc hành động như vậy tồn tại, Sails sẽ ra một thông báo lỗi và bỏ qua các tuyến đường. Nếu không, bất cứ khi nào một yêu cầu GET / foo / đi được thực hiện, các mã trong hành động đó sẽ được chạy. Bộ điều khiển và hành động tên trong cú pháp này là trường hợp nhạy cảm. Lưu ý rằng các API kế hoạch chi tiết cho biết thêm một số hành động để điều khiển của bạn theo mặc định (như "tìm thấy", "tạo ra", "cập nhật" và "xóa"), tất cả đều có sẵn cho việc định tuyến: "GET / foo / đi ':' UserController .find ' Giả sử rằng có bạn một api / controllers / UserController.js tập tin và một api / mod
























đang được dịch, vui lòng đợi..
Kết quả (Việt) 3:[Sao chép]
Sao chép!
Overview#Buồm cho phép anh rõ ràng của đường dẫn URL bằng nhiều cách khác nhau trong các tập tin cấu hình routes.js.Mọi tuyến đường bao gồm một cấu hình địa chỉ với một mục đích, ví dụ:Có / foo/bar':'foocontroller bar ".^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^^^^^^ địa chỉ mục tiêu ^^^^^^^Địa chỉ tuyến#Định tuyến địa chỉ thị phải khớp với mục tiêu đã xác định và lựa chọn chương trình xử lý địa chỉ URL đã phải phù hợp với nhau.Tùy chọn con đường từ động từ và bắt buộc gồm: đường."Sau khi / / Phú / bar."Động từ "verb".Nếu không có động từ chỉ định tuyến sẽ khớp với cách CRUD (GET, để sau khi gỡ bỏ hoặc miếng vá).Nếu tất cả được xác định như động từ, thì nên con đường sẽ khớp với phương pháp;.Chú ý, tất cả các con đường ban đầu bằng một con đường đều nên bắt đầu bằng việc bình thường.Kí tự đại diện và dynamic parameters#Ngoài việc xác định một đường dẫn tĩnh như Foo / quán bar, anh có thể sử dụng * với tư cách đại diện:"/ *".Tất cả sẽ khớp với đường, ở đâu:"/ user / thức ăn / *Tất cả sẽ khớp với đường, bắt đầu / user / Foo.Chú ý: khi dùng một kí tự đại diện đường, như "/*", chú ý, nó cũng sẽ yêu cầu tài sản cố định khớp (i.e. / js / phụ thuộc vào / buồm. ABO. JS) và che phủ.Để tránh tình trạng này, hãy cân nhắc dùng tùy chọn skipassets giải thích như sau.Anh có thể bắt được địa chỉ của đại diện phần khớp cho tham số được đặt tên: paramName cú pháp đại diện chứ không phải là *:"/ user / phúc / pub /: tênSẽ khớp gần như cùng một địa chỉ URL:"/ user / thức ăn / pub / *Nhưng sẽ là một phần của tuyến đường URL động giá trị như một giá trị tham số cho tuyến đường cung cấp chương trình xử lý.Trong trường hợp này: yêu cầu tham số ('name').Chú ý đại diện (*) Grammar khớp với dấu gạch chéo, trong chế độ địa chỉ URL biến (:) Pháp không.Vì vậy trong ví dụ trên, chỉ có con đường địa chỉ / user / thức ăn / pub / *, đến đây yêu cầu người dùng / Phước url / / pub / phóng viên / băng / Phụng / nổ sẽ khớp (nếu sử dụng: tên Pháp, cùng một địa chỉ URL không khớp.)Trong biểu thức chính quy địa chỉ#Ngoại trừ địa chỉ của đại diện pháp, anh cũng có thể sử dụng biểu thức chính quy để định nghĩa một đường dẫn URL phải phù hợp với nhau.Địa chỉ xác định bằng biểu thức chính quy của ngữ pháp là:"R | < biểu thức chính quy | chuỗi > < dấu phẩy chia các thông số tên >"Đó là chữ "R", và thứ hai là đường ống | chuỗi ký tự, biểu thức chính quy không phân cách, thêm một ống, và một danh sách tên nên vẽ bản đồ các thông số của biểu thức chính quy ngoặc của nhóm.Ví dụ:"R | ^ / d + / (w+) / (w+) như | Foo, bar": "messagecontroller MyAction."Sẽ khớp / 123 / ABC DEF, chạy MessageController MyAction di chuyển và cung cấp giá trị ABC và yêu cầu DEF là tham số ('foo ") và yêu cầu các tham số ('bar"), riêng biệt.Chú ý ở D và W đôi chống chéo; đây là việc làm cần thiết đúng biểu thức chính quy.Về lộ trình sắp xếp#Khi sử dụng trong các địa chỉ của đại diện hoặc biểu thức chính quy, nhớ anh tuyến cấu hình / routes.js sắp xếp các vấn đề địa chỉ URL; khớp trong danh sách từ trên xuống dưới.Nếu bạn có hai cấu hình trong thứ tự đó:"Người dùng": "usercontroller Action","/": "catchallcontroller dosomethingelse".Sau đó yêu cầu / người dùng sẽ không tương ứng với cấu hình thứ hai đầu tiên của cấu hình trừ khi xử lý cuộc gọi chương trình Next () in its Mã, đây là nản lòng (chỉ có chính sách nên gọi NeXT ()).Trừ khi anh làm mọi chuyện là rất hiện đại, nó là an toàn cho rằng, mọi đề nghị đều sẽ có một đường nhất trong tập tin cấu hình của bạn xử lý routes.js.Mục tiêu tuyến#Riêng phần của tuyến xác định địa chỉ URL, tuyến đường phải phù hợp với nhau.Ở trận đấu sau khi đã xác định mục tiêu hoàn thành phần cánh buồm nên làm gì.Mục tiêu có thể có nhiều hình thức khác nhau.Trong một số trường hợp, anh có thể bỏ nhiều mục tiêu trong một mảng trong hầu hết trường hợp, nhưng tất cả đều chỉ có một mục tiêu. Địa chỉ.Dưới bàn. Loại mục tiêu khác nhau, sau đó đã bàn về vài tùy chọn khác nhau có thể được áp dụng cho chúng.Điều khiển / hành động mục tiêu ngữ pháp#Loại phổ biến nhất là tuyến đường kết nối tới mục tiêu sẽ điều khiển riêng một loại hành động.Bốn tuyến đường khá giáp các đô thị:Có / / Phú / đi ":" foocontroller mygoaction ",Có / / Phú / đi ":" foo ". Mygoaction,Có / / Phú / đi ": [điều khiển:" foo "hành động:" mygoaction "],Có / / Phú / đi ": [điều khiển:" foocontroller "hành động:" mygoaction "],Mỗi một tấm bản đồ được / Phú / đi / / foocontroller.js API của bộ điều khiển điều khiển hoạt động mygoaction.Nếu không có bộ điều khiển hay hoạt động tồn tại, buồm sẽ ra thông báo lỗi và bỏ qua tuyến;.Nếu không, khi một GET yêu cầu / thức ăn / đi rồi, như vậy sẽ tiến hành chiến dịch mã.Trong cú pháp này điều khiển và tên hành động không phân biệt chữ;.Xin hãy chú ý, bản thiết kế trong trường hợp API mặc định cho điều khiển thêm vài hoạt động (như "tìm", "tạo ra", "cập nhật" và "xóa"), tất cả đều là có thể được dùng để định tuyến.:Có / / Phú / đi ":" usercontroller tìm ".Giả sử có một API / điều khiển / usercontroller.js và API / chỉnh sửa hồ sơ
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: