Tôi gặp sự cố khi triển khai xây dựng tùy chỉnh tên miền chéo trong Dojo. Tình hình là như sau: tôi có một ứng dụng khá lớn, với một số lượng tốt của gói nội địa hóa, vì vậy, về cơ bản cấu trúc thư mục giống như
lõi \ (mô-đun của tôi)
nls \
fr \
en \
....
Khi xây dựng mô-đun, kết quả là tệp core.js/core.xd.js lớn, trong đó, bien sur, không chứa các bản địa hoá. Trong các thư mục bản địa hóa nls (en/fr/etc) tôi tìm thấy sau khi xây dựng mỗi gói được xây dựng/rút gọn và một tệp lớn hơn cho mỗi ngôn ngữ, core_fr.js/core_en.fs, chỉ chứa các chuỗi liên quan Dojo/Dijit.Xây dựng tùy chỉnh Dojo với NLS/bản địa hóa
để xây dựng kịch bản của tôi là
layers: [
{
resourceName: "core",
name: "../core/trusted.js",
dependencies: [
"dojo.i18n",
//data
"dojox.data.JsonRestStore",
"dojox.data.XmlStore",
"dojox.rpc.Service",
"dojox.form.FileInput",
...
"core.controller.Fusebox"
],
prefixes: [
["dijit","../dijit"],
["dojox","../dojox"],
["core", "../core"]
]
Trong lớp core.controller.Fusebox tôi cố gắng để tải 1 nls
dojo["requireLocalization"]("core", "FuseboxContent");
đây nó sẽ chết, tuy nhiên với
availableFlatLocales is undefined
[Break on this error] var locales = availableFlatLocales.split(",");\r\n
Cấu hình của tôi trong tệp html là:
// version build
var djConfig = {
baseUrl: 'https://..../',
modulePaths: { 'core': 'core'},
useXDomain: true,
xdWaitSeconds: 10,
parseOnLoad: true,
afterOnLoad: true,
// debugAtAllCosts: true,
isDebug: true,
locale: "fr"
};
và sau đó
<script type="text/javascript" src="http://xd.woopic.com/dojoroot/1.3.2-xd/dojo/dojo.xd.js.uncompressed.js"></script>
<script type="text/javascript" src="https://..../core/trusted.js.uncompressed.js"></script>
tôi đã sử dụng không nén cho debug, tất nhiên. Vấn đề là, khi chạy, Dojo cố gắng tải các gói của tôi và không thể tìm thấy chúng, và tôi muốn nhúng chúng vào tệp lớp của tôi, vì vậy không cần tải thêm. Điều này có thể đạt được không? Và trong khi chúng tôi đang ở đó, có bất kỳ trang web/ví dụ hoạt động nào với các bản địa hóa miền chéo không? CẬP NHẬT: tôi tiếp tục phân tích của tôi và vấn đề dường như nằm trong thực tế là tôi đang tải động học nls, do đó, trình phân tích cú pháp xây dựng không thể tìm thấy các cuộc gọi requireLocalization(). Do đó, tệp nls của dự án chỉ chứa nội dung liên quan dojo/dijit. Tuy nhiên, tôi đã thêm một vài gói tải trong một tệp giả và nội dung của lõi/nls vẫn bị bỏ qua bởi trình tạo.
Cảm ơn bạn đã biết bất kỳ thông tin nào, tôi thấy khá nhiều vào cuối các tìm kiếm của mình, không có nhiều thứ trên mạng về chủ đề này.
Tôi không phải là chuyên gia về các vấn đề xd, nhưng tôi đã tò mò muốn xem các mục nhập nls trong mô-đun. Họ không cần thiết. Bạn đang sử dụng chúng và nó có tạo nên sự khác biệt nào nếu bạn loại bỏ chúng? – peller
Tôi đã xóa chúng, không thay đổi, bản địa hóa vẫn chưa được tải. Tôi nghĩ rằng họ ở đó vì một số lý do di sản ... nhưng bạn đã đúng là nữ quyền. Tôi đã cập nhật bài đăng cho phù hợp. – aciobanu