Ver a proveniência

translation fix

production
kelvin.yau há 8 horas
ascendente
cometimento
83b6203e61
4 ficheiros alterados com 83 adições e 319 eliminações
  1. +1
    -1
      src/app/(main)/settings/itemPrice/page.tsx
  2. +3
    -3
      src/components/ItemPriceSearch/ItemPriceSearch.tsx
  3. +7
    -125
      src/i18n/en/inventory.json
  4. +72
    -190
      src/i18n/zh/inventory.json

+ 1
- 1
src/app/(main)/settings/itemPrice/page.tsx Ver ficheiro

@@ -15,7 +15,7 @@ const ItemPriceSetting: React.FC = async () => {
<>
<PageTitleBar title={t("Price Inquiry")} className="mb-4" />

<I18nProvider namespaces={["itemPrice","navigation","common","inventory","importExcel"]}>
<I18nProvider namespaces={["itemPrice","navigation","common","importExcel"]}>
<Suspense fallback={<ItemPriceSearch.Loading />}>
<ItemPriceSearch />
</Suspense>


+ 3
- 3
src/components/ItemPriceSearch/ItemPriceSearch.tsx Ver ficheiro

@@ -24,7 +24,7 @@ type ItemPriceSearchComponent = React.FC & {
type SearchParamNames = keyof SearchQuery;

const ItemPriceSearch: ItemPriceSearchComponent = () => {
const { t } = useTranslation(["itemPrice", "inventory", "common", "importExcel"]);
const { t } = useTranslation(["itemPrice", "common", "importExcel"]);

const [item, setItem] = useState<ItemsResult | null>(null);
const [isSearching, setIsSearching] = useState(false);
@@ -275,7 +275,7 @@ const ItemPriceSearch: ItemPriceSearchComponent = () => {
<Card variant="outlined" sx={{ borderRadius: 2, flex: 1, display: "flex", flexDirection: "column", minHeight: 0 }}>
<CardContent sx={{ py: 2, flex: 1, minHeight: 0, "&:last-child": { pb: 2 }, display: "flex", flexDirection: "column", alignItems: "flex-start", justifyContent: "flex-start" }}>
<Typography variant="subtitle2" color="text.secondary" sx={{ mb: 1, flexShrink: 0 }}>
{t("Average unit price", { ns: "inventory" })}
{t("Average unit price")}
</Typography>
<Typography variant="h5" sx={{ width: "100%", flex: 1, display: "flex", alignItems: "center", justifyContent: "center", textAlign: "center", fontWeight: 500, color: "black", minHeight: 0 }}>
{avgPrice != null && avgPrice !== 0
@@ -292,7 +292,7 @@ const ItemPriceSearch: ItemPriceSearchComponent = () => {
<Card variant="outlined" sx={{ borderRadius: 2, flex: 1, display: "flex", flexDirection: "column", minHeight: 0 }}>
<CardContent sx={{ py: 2, flex: 1, minHeight: 0, "&:last-child": { pb: 2 }, display: "flex", flexDirection: "column", alignItems: "flex-start", justifyContent: "flex-start" }}>
<Typography variant="subtitle2" color="text.secondary" sx={{ mb: 1, flexShrink: 0 }}>
{t("Latest market unit price", { ns: "inventory" })}
{t("Latest market unit price")}
</Typography>
<Typography variant="h5" sx={{ width: "100%", textAlign: "center", fontWeight: 500, color: "black", flex: 1, minHeight: 0, display: "flex", alignItems: "center", justifyContent: "center" }}>
{item.latestMarketUnitPrice != null && Number(item.latestMarketUnitPrice) !== 0


+ 7
- 125
src/i18n/en/inventory.json Ver ficheiro

@@ -1,75 +1,28 @@
{
"-{{Variance}}≤Variance Percentage ≤{{Variance}} will be filtered out": "-{{Variance}}≤Variance Percentage ≤{{Variance}} will be filtered out",
"AVAILABLE": "AVAILABLE",
"Action": "Action",
"Add": "Add",
"Add entry": "Add entry",
"Add entry for items without inventory": "Add entry for items without inventory",
"Adjusted Qty": "Adjusted Qty",
"Approve": "Approve",
"Approver All": "Approver All",
"Approver search empty hint": "Set search criteria and click Search",
"ApproverAll": "ApproverAll",
"Available": "Available",
"Available Qty": "Available Qty",
"Available Qty Per Smallest Unit": "Available Qty Per Smallest Unit",
"Average unit price": "Average unit price",
"Back": "Back",
"Bad Item Handle": "Bad Item Handle",
"Bad Item Qty": "Bad Item Qty",
"Bad Item Records": "Bad Item Records",
"Balance Qty": "Balance Qty",
"Base UoM": "Base UoM",
"Batch Save Completed": "Batch Save Completed",
"Batch Save Inputted": "Batch Save Inputted",
"Batch Submit All": "Batch Submit All",
"Batch approver save completed: {{success}} success, {{skipped}} skipped, {{errors}} errors": "Batch approver save completed: {{success}} success, {{skipped}} skipped, {{errors}} errors",
"Body is unavailable": "Body is unavailable",
"Bom Req. Qty": "Bom Req. Qty",
"CMB": "Consumables",
"CO": "Consumables",
"Clear selection": "Clear selection",
"Cancel": "Cancel",
"Code": "Code",
"Collapse floor sections": "Collapse sections for this floor",
"Confirm Adjustment": "Confirm Adjustment",
"Confirm create stock take for all sections?": "Confirm create stock take for all sections?",
"Confirm remove": "Confirm remove",
"Counted Qty": "Counted Qty",
"Create Stock Take for All Sections": "Create Stock Take for All Sections",
"Current Stock": "Current Stock",
"Delivery Order": "Delivery Order",
"Difference": "Difference",
"Download QR Code": "Download QR Code",
"Edit mode": "Edit mode",
"End Date": "End Date",
"Enter item code or name to search": "Enter item code or name to search",
"Expand floor sections": "Expand sections for this floor",
"Expiry Date": "Expiry Date",
"Expiry End Date": "Expiry End Date",
"Expiry Item Handle": "Expiry Item Handle",
"Expiry Item Qty": "Expiry Item Qty",
"Expiry Item Records": "Expiry Item Records",
"Expiry Qty": "Expiry Qty",
"Expiry Start Date": "Expiry Start Date",
"FG": "Finished good",
"Failed to transfer stock": "Failed to transfer stock",
"Failed to transfer stock. Please try again.": "Failed to transfer stock. Please try again.",
"Filtered out": "Filtered out",
"First Qty": "First Qty",
"Handled Date": "Handled Date",
"Handler": "Handler",
"Hide Search Filters": "Hide Search Filters",
"In Qty": "In Qty",
"Input": "Input",
"Invalid QTY": "Invalid quantity",
"Inventory": "Inventory",
"Inventory Exception Management": "Inventory Exception Management",
"Item Name": "Item Name",
"Item": "Item",
"Item selected": "Item selected",
"Item-lotNo": "Item-lotNo",
"Job Order": "Job Order",
"Latest market unit price": "Latest market unit price",
"Loading": "Loading",
"Location": "Location",
"Lot No": "Lot No",
"MA": "Material",
"MI": "Miscellaneous",
@@ -77,130 +30,59 @@
"NM": "Miscellaneous / non-consumables",
"Name": "Name",
"No Data": "No Data",
"No changes to submit": "No changes to submit",
"No issues found": "No issues found",
"No data": "No data",
"No items are selected yet.": "No items are selected yet.",
"No lot no entered, will be generated by system.": "No lot no entered, will be generated by system.",
"No record found": "No record found",
"Opening Inventory": "Opening Inventory",
"Optional - system will generate": "Optional - system will generate",
"Original Qty": "Original Qty",
"Out Qty": "Out Qty",
"Perform Stock Take": "Perform Stock Take",
"Pick Order, Issue No, Item, Lot...": "Pick Order, Issue No, Item, Lot...",
"Please enter QTY and Bad QTY": "Please enter QTY and Bad QTY",
"Please scan...": "Please scan...",
"Please set at least one search criterion": "Please set at least one search criterion",
"Print": "Print",
"Print QR Code": "Print QR Code",
"Print Qty": "Print Qty",
"Print failed": "Print failed",
"Print sent": "Print sent",
"Printer": "Printer",
"Qty": "Qty",
"Qty To Be Transferred": "Qty To Be Transferred",
"Quantity exceeds available quantity": "Quantity exceeds available quantity",
"RM": "Raw material",
"Reason for adjustment": "Reason for adjustment",
"Reason for removal": "Reason for removal",
"Refresh": "Refresh",
"Remaining Qty": "Remaining Qty",
"Remarks": "Remarks",
"Remove": "Remove",
"Resolved": "Resolved",
"Review Variance": "Review Variance",
"Rows per page": "Rows per page",
"Reset": "Reset",
"SFG": "Semi-finished good",
"Sales UoM": "Sales UoM",
"Save": "Save",
"Save failed": "Save failed",
"Saved successfully": "Saved successfully",
"Search lot by QR code": "Search lot by QR code",
"Search to load lot lines": "Search to load lot lines",
"Second Qty": "Second Qty",
"Select": "Select",
"Select Section": "Select Section",
"Select Stock Take Section": "Select Stock Take Section",
"Select all sections": "Select all sections",
"Select sections placeholder": "Select one or more",
"Select stock take sections to create hint": "Choose warehouse stock take sections to start a new round (selected sections share one new round id in this batch).",
"Selected section count": "Selected: {{count}} section(s)",
"Show Search Filters": "Show Search Filters",
"Something went wrong fetching data in server.": "Something went wrong fetching data in server.",
"Start Date": "Start Date",
"Start Location": "Start Location",
"Start New Stock Take": "Start New Stock Take",
"Start Time": "Start Time",
"Stock Adjustment": "Stock Adjustment",
"Stock Record": "Stock Record",
"Stock Take Variance": "Stock Take Variance",
"Stock Transfer": "Stock Transfer",
"Stock UoM": "Stock UoM",
"Stock take adjustment confirmed! (Demo only)": "Stock take adjustment confirmed! (Demo only)",
"Stock take adjustment has been confirmed successfully!": "Stock take adjustment has been confirmed successfully!",
"Stock take qty exceeds maximum": "Stock take quantity cannot exceed 999,999,999,999",
"Stock transfer created new lot": "Stock transfer completed (created new lot line).",
"Stock transfer merged ambiguous": "Merged into the earliest available batch (multiple available lines for the same lot).",
"Stock transfer merged existing lot": "Stock transfer completed (merged into existing lot).",
"Stock transfer successful": "Stock transfer completed",
"Stop QR Scan": "Stop QR Scan",
"Submit": "Submit",
"Submit completed: {{success}} success, {{errors}} errors": "Submit completed: {{success}} success, {{errors}} errors",
"System Qty": "System Qty",
"Target Location": "Target Location",
"Total Approved": "Total Approved",
"Total Issues": "Total Issues",
"Total Item Number": "Total Item Number",
"Total Stock Takes": "Total Stock Takes",
"Total need stock take": "Total need stock take",
"Type": "Type",
"UNAVAILABLE": "UNAVAILABLE",
"Variance filter strict bounds": "Exclude boundaries (use > <)",
"View": "View",
"UoM": "UoM",
"WIP": "Work in progress",
"Waiting for Approver": "Waiting for Approver",
"Warehouse": "Warehouse",
"adj": "adj",
"approver": "approver",
"approving": "approving",
"available": "available",
"bad": "bad",
"cmb": "Consumables",
"complete": "complete",
"completed": "completed",
"completed by": "completed by",
"completed date": "completed date",
"completed remarks": "completed remarks",
"completed status": "completed status",
"consumable": "Consumable",
"consumables": "Consumables",
"dnNo": "dnNo",
"expiry": "expiry",
"fg": "Finished good",
"item": "Item",
"mat": "Raw material",
"miss": "miss",
"nm": "Miscellaneous / non-consumables",
"non-consumables": "Non-consumables",
"nor": "nor",
"not available": "not available",
"not match": "not match",
"not pass": "not pass",
"notMatch": "notMatch",
"notmatch": "notmatch",
"open": "open",
"pass": "pass",
"pending": "pending",
"productLotNo": "productLotNo",
"rejected": "rejected",
"save": "save",
"section": "section",
"sfg": "Semi-finished good",
"stockTaking": "stockTaking",
"tke": "tke",
"to": "to",
"trf": "trf",
"unavailable": "unavailable",
"variance": "variance",
"wip": "Work in progress",
"材料": "Material"
}

+ 72
- 190
src/i18n/zh/inventory.json Ver ficheiro

@@ -1,206 +1,88 @@
{
"Inventory": "存貨",
"Action": "操作",
"Add": "新增",
"Add entry": "新增倉存",
"Add entry for items without inventory": "為無庫存貨品新增倉存",
"Adjusted Qty": "調整後倉存",
"Available Qty": "可用數量",
"CMB": "消耗品",
"CO": "消耗品",
"Cancel": "取消",
"Code": "編號",
"Name": "名稱",
"Type": "類型",
"Lot No": "批號",
"Confirm remove": "確認移除",
"Current Stock": "現有庫存",
"Difference": "差異",
"Download QR Code": "下載",
"Edit mode": "編輯模式",
"Enter item code or name to search": "輸入貨品編號或名稱以搜索",
"Expiry Date": "到期日",
"Warehouse": "倉庫",
"材料": "材料",
"consumable": "消耗品",
"Qty": "盤點數量",
"Total need stock take": "總需盤點數量",
"Waiting for Approver": "待審核數量",
"Total Approved": "已審核數量",
"mat": "原料",
"variance": "差異",
"ApproverAll": "審核員",
"Approver All": "審核員全部盤點",
"fg": "成品",
"FG": "成品",
"sfg": "半成品",
"SFG": "半成品",
"consumables": "消耗品",
"non-consumables": "非消耗品",
"item": "貨品",
"NM": "雜項及非消耗品",
"CMB": "消耗品",
"RM": "原料",
"Failed to transfer stock": "轉倉失敗",
"Failed to transfer stock. Please try again.": "轉倉失敗,請重試。",
"Inventory": "存貨",
"Item": "貨品",
"Item selected": "已選擇貨品",
"Location": "位置",
"Lot No": "批號",
"MA": "材料",
"CO": "消耗品",
"MI": "雜項",
"wip": "半成品",
"WIP": "半成品",
"cmb": "消耗品",
"nm": "雜項及非消耗品",
"available": "可用",
"unavailable": "不可用",
"tke": "盤點",
"Total Stock Takes": "總盤點數量",
"Submit completed: {{success}} success, {{errors}} errors": "提交完成:{{success}} 成功,{{errors}} 失敗",
"Body is unavailable": "輸入不可用",
"Confirm create stock take for all sections?": "確認為所有區域創建盤點?",
"not available": "不可用",
"Batch Submit All": "批量提交所有",
"not match": "要求重點",
"Show Search Filters": "顯示搜索器",
"Hide Search Filters": "隱藏搜索器",
"-{{Variance}}≤Variance Percentage ≤{{Variance}} will be filtered out": "-{{Variance}}%≤差異百分比≤{{Variance}}%將被過濾掉",
"Variance filter strict bounds": "不使用=",
"Filtered out": "過濾掉",
"Total Item Number": "貨品數量",
"Please enter QTY and Bad QTY": "請輸入盤點數量和不良數量",
"Invalid QTY": "無效的數量",
"Stock take qty exceeds maximum": "盤點數量不可超過 999,999,999,999",
"Start Time": "開始時間",
"stockTaking": "盤點中",
"rejected": "已拒絕",
"miss": "缺貨",
"bad": "不良",
"expiry": "過期",
"open": "開倉",
"Bom Req. Qty": "需求數(BOM單位)",
"notmatch": "要求重點",
"pass": "已盤點",
"not pass": "不通過",
"Available": "可用",
"approving": "審核中",
"pending": "待處理",
"notMatch": "要求重點",
"Input": "輸入",
"Something went wrong fetching data in server.": "在伺服器上取得資料時發生錯誤。",
"save": "保存",
"AVAILABLE": "可用",
"View": "查看",
"approver": "審核員",
"Create Stock Take for All Sections": "為所有區域創建盤點",
"Select stock take sections to create hint": "請選擇要建立新盤點輪次的盤點區域(同一批次將共用同一輪次編號)。",
"Select sections placeholder": "可多選",
"Select all sections": "全選區域",
"Clear selection": "清除選取",
"Selected section count": "已選擇 {{count}} 個區域",
"Expand floor sections": "展開此樓層區域",
"Collapse floor sections": "收合此樓層區域",
"section": "區域",
"First Qty": "第一次盤點數量",
"Second Qty": "第二次盤點數量",
"Remarks": "備註",
"Available Qty": "可用數量",
"Sales UoM": "銷售單位",
"Stock UoM": "庫存單位",
"Available Qty Per Smallest Unit": "可用數量 (基本單位)",
"Base UoM": "基本單位",
"No items are selected yet.": "未選擇貨品",
"Item selected": "已選擇貨品",
"Delivery Order": "交貨單",
"Job Order": "工單",
"Material": "物料",
"UNAVAILABLE": "不可用",
"No issues found": "未找到問題",
"Batch approver save completed: {{success}} success, {{skipped}} skipped, {{errors}} errors": "批次審核儲存完成:成功 {{success}} 筆,略過 {{skipped}} 筆,錯誤 {{errors}} 筆",
"Approve": "審核",
"complete": "完成",
"completed": "已完成",
"completed by": "完成者",
"completed date": "完成日期",
"completed remarks": "完成備註",
"completed status": "完成狀態",
"Pick Order, Issue No, Item, Lot...": "揀貨單, 問題編號, 貨品, 批號...",
"Refresh": "刷新",
"Resolved": "已解決",
"Total Issues": "總問題數量",
"Inventory Exception Management": "存貨異常管理",
"Back": "返回",
"Confirm Adjustment": "確認調整",
"Counted Qty": "盤點數量",
"Item Name": "貨品名稱",
"Perform Stock Take": "執行盤點",
"Review Variance": "審核差異",
"Select": "選擇",
"Select Section": "選擇區域",
"Select Stock Take Section": "選擇盤點區域",
"Start New Stock Take": "開始新的盤點",
"Stock Take Variance": "盤點差異",
"Stock take adjustment confirmed! (Demo only)": "盤點調整確認!(僅演示)",
"Stock take adjustment has been confirmed successfully!": "盤點調整確認成功!",
"System Qty": "系統數量",
"Batch Save Inputted": "批量保存已輸入",
"Batch Save Completed": "批量保存完成",
"Bad Item Handle": "不良品處理",
"Search to load lot lines": "請按搜索以載入批號",
"No changes to submit": "沒有可提交的變更",
"No record found": "沒有記錄",
"Rows per page": "每頁行數",
"Bad Item Records": "不良品處理紀錄",
"Expiry Item Handle": "過期品處理",
"Expiry Item Records": "過期品處理紀錄",
"Handled Date": "處理日期",
"Expiry Start Date": "到期日(開始)",
"Expiry End Date": "到期日(結束)",
"Bad Item Qty": "不良品數量",
"Expiry Item Qty": "過期品數量",
"Handler": "處理人",
"Quantity exceeds available quantity": "數量超過可用數量",
"Stock Record": "庫存記錄",
"Item-lotNo": "貨品-批號",
"In Qty": "入庫數量",
"Expiry Qty": "過期數量",
"Out Qty": "出庫數量",
"Balance Qty": "庫存數量",
"Start Date": "開始日期",
"End Date": "結束日期",
"Loading": "加載中",
"adj": "調整",
"nor": "正常",
"trf": "轉倉",
"Stock transfer successful": "轉倉成功",
"Stock transfer merged ambiguous": "已併入較早建立的批次(同批號有多筆可用)",
"Stock transfer merged existing lot": "轉倉成功(已併入既有批號)",
"Stock transfer created new lot": "轉倉成功(已建立新批號庫存)",
"Failed to transfer stock": "轉倉失敗",
"Failed to transfer stock. Please try again.": "轉倉失敗,請重試。",
"Download QR Code": "下載",
"Print QR Code": "列印",
"Stock Transfer": "轉倉",
"Start Location": "起點倉位",
"to": "轉倉至",
"Target Location": "目標倉位",
"NM": "雜項及非消耗品",
"Name": "名稱",
"No Data": "沒有數據",
"No data": "沒有數據",
"No items are selected yet.": "未選擇貨品",
"No lot no entered, will be generated by system.": "未輸入批號,將由系統生成。",
"Opening Inventory": "開倉",
"Optional - system will generate": "選填,系統將自動生成",
"Original Qty": "原有數量",
"Qty To Be Transferred": "待轉數量",
"Remaining Qty": "剩餘數量",
"Submit": "確認",
"Printer": "列印機",
"Print Qty": "列印數量",
"Please scan...": "請掃描...",
"Print": "列印",
"Print sent": "已送出列印",
"Print QR Code": "列印",
"Print Qty": "列印數量",
"Print failed": "列印失敗",
"Stock Adjustment": "庫存調整",
"Edit mode": "編輯模式",
"Add entry": "新增倉存",
"productLotNo": "產品批號",
"dnNo": "送貨單編號",
"Optional - system will generate": "選填,系統將自動生成",
"Add": "新增",
"Opening Inventory": "開倉",
"Print sent": "已送出列印",
"Printer": "列印機",
"Qty To Be Transferred": "待轉數量",
"RM": "原料",
"Reason for adjustment": "調整原因",
"No lot no entered, will be generated by system.": "未輸入批號,將由系統生成。",
"Reason for removal": "移除原因",
"Confirm remove": "確認移除",
"Adjusted Qty": "調整後倉存",
"Difference": "差異",
"Action": "操作",
"Saved successfully": "儲存成功",
"Save failed": "儲存失敗",
"Remaining Qty": "剩餘數量",
"Remarks": "備註",
"Remove": "移除",
"Average unit price": "平均單位價格",
"Latest market unit price": "最新市場價格",
"Add entry for items without inventory": "為無庫存貨品新增倉存",
"Enter item code or name to search": "輸入貨品編號或名稱以搜索",
"Current Stock": "現有庫存",
"Reset": "重置",
"SFG": "半成品",
"Save": "儲存",
"Save failed": "儲存失敗",
"Saved successfully": "儲存成功",
"Search lot by QR code": "尋找批次(掃描二維碼)",
"Please scan...": "請掃描...",
"Start Location": "起點倉位",
"Stock Adjustment": "庫存調整",
"Stock Transfer": "轉倉",
"Stock UoM": "庫存單位",
"Stock transfer created new lot": "轉倉成功(已建立新批號庫存)",
"Stock transfer merged ambiguous": "已併入較早建立的批次(同批號有多筆可用)",
"Stock transfer merged existing lot": "轉倉成功(已併入既有批號)",
"Stock transfer successful": "轉倉成功",
"Stop QR Scan": "停止掃碼",
"No Data": "沒有數據",
"Please set at least one search criterion": "請至少設定一項搜索條件",
"Approver search empty hint": "請設定搜索條件後點擊搜索"
"Submit": "確認",
"Target Location": "目標倉位",
"Type": "類型",
"UoM": "單位",
"WIP": "半成品",
"Warehouse": "倉庫",
"cmb": "消耗品",
"consumable": "消耗品",
"consumables": "消耗品",
"dnNo": "送貨單編號",
"fg": "成品",
"item": "貨品",
"mat": "原料",
"nm": "雜項及非消耗品",
"non-consumables": "非消耗品",
"productLotNo": "產品批號",
"sfg": "半成品",
"to": "轉倉至",
"wip": "半成品",
"材料": "材料"
}

Carregando…
Cancelar
Guardar