Pārlūkot izejas kodu

Merge pull request #231 from yeungalan/claude/charming-pascal-ty97M

Localize diskmg.html using existing arozos locale system
Alan Yeung 2 nedēļas atpakaļ
vecāks
revīzija
5d158eddd7
2 mainītis faili ar 320 papildinājumiem un 41 dzēšanām
  1. 46 41
      src/web/SystemAO/disk/diskmg.html
  2. 274 0
      src/web/SystemAO/locale/diskmg.json

+ 46 - 41
src/web/SystemAO/disk/diskmg.html

@@ -6,7 +6,8 @@
         <script src="../../script/jquery.min.js"></script>
         <script type='text/javascript' src="../../semantic/semantic.min.js"></script>
         <script src="../../script/ao_module.js"></script>
-        <title>Disk Management</title>
+        <script src="../../script/applocale.js"></script>
+        <title locale="diskmg/window-title">Disk Management</title>
         <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
         <style>
             *, *::before, *::after { box-sizing: border-box; }
@@ -550,12 +551,12 @@
 
         <!-- ── Sidebar ── -->
         <div class="sidebar">
-            <div class="sidebar-header">Disks</div>
+            <div class="sidebar-header" locale="diskmg/sidebar-header">Disks</div>
             <div class="sidebar-list" id="sidebarList">
                 <div class="sidebar-item active">
                     <img class="sidebar-item-icon" src="../../img/system/drive.svg" alt="">
                     <div class="sidebar-item-text">
-                        <div class="sidebar-item-name">Loading…</div>
+                        <div class="sidebar-item-name" locale="diskmg/loading">Loading…</div>
                         <div class="sidebar-item-sub">&nbsp;</div>
                     </div>
                 </div>
@@ -566,7 +567,7 @@
         <div class="detail-panel" id="detailPanel">
             <div class="empty-state">
                 <img src="../../img/system/drive.svg" alt="">
-                <div class="empty-state-text">Select a disk to view details</div>
+                <div class="empty-state-text" locale="diskmg/select-disk">Select a disk to view details</div>
             </div>
         </div>
 
@@ -575,7 +576,7 @@
         <!-- ── Context menu ── -->
         <div id="rightClickMenu" style="display:none;">
             <div id="formatDisk" class="ctx-item" onclick="toggleFormatInterface(this);">
-                <i class="erase icon"></i> Erase…
+                <i class="erase icon"></i> <span locale="diskmg/erase">Erase…</span>
             </div>
             <div class="ctx-sep"></div>
             <div id="mtbtn" class="ctx-item" onclick="toggleMount(this);">
@@ -585,15 +586,15 @@
 
         <!-- ── Format dialog ── -->
         <div id="formatOptions" class="funcmenu">
-            <div class="funcmenu-title">Erase Partition</div>
+            <div class="funcmenu-title" locale="diskmg/erase-title">Erase Partition</div>
             <div class="funcmenu-body">
-                <div class="warning-banner">
+                <div class="warning-banner" locale="diskmg/erase-warning">
                     ⚠&nbsp; This will permanently erase all data on the selected partition.
                     Back up important files before continuing.
                 </div>
                 <div class="info-row" id="selectedDiskDisplay">/dev/sda1</div>
                 <div class="form-field">
-                    <label class="form-label">Format</label>
+                    <label class="form-label" locale="diskmg/format-label">Format</label>
                     <div class="radio-group">
                         <label class="radio-item"><input id="ext4" type="radio" name="format" checked> EXT4</label>
                         <label class="radio-item"><input id="ntfs" type="radio" name="format"> NTFS</label>
@@ -602,33 +603,33 @@
                 </div>
             </div>
             <div class="funcmenuBottom">
-                <button class="mac-btn" onclick="hideAllFuncMenu();">Cancel</button>
-                <button class="mac-btn danger" onclick="formatThisDev();">Erase</button>
+                <button class="mac-btn" onclick="hideAllFuncMenu();" locale="diskmg/cancel">Cancel</button>
+                <button class="mac-btn danger" onclick="formatThisDev();" locale="diskmg/erase-btn">Erase</button>
             </div>
         </div>
 
         <!-- ── Mount dialog ── -->
         <div id="mountOptions" class="funcmenu">
-            <div class="funcmenu-title">Mount Drive</div>
+            <div class="funcmenu-title" locale="diskmg/mount-title">Mount Drive</div>
             <div class="funcmenu-body">
-                <p style="color:#6e6e73;font-size:12px;margin:0 0 12px;">Select a mount point for this device.</p>
+                <p style="color:#6e6e73;font-size:12px;margin:0 0 12px;" locale="diskmg/mount-desc">Select a mount point for this device.</p>
                 <div id="mtptlist">
                     <div class="mountpt userdefine" onclick="selectThis(this);">
-                        <div style="font-weight:600;font-size:12px;">Custom Mount Point</div>
-                        <input id="userDefinedMountPoint" class="fluid-input" type="text" placeholder="e.g. /mnt/data">
+                        <div style="font-weight:600;font-size:12px;" locale="diskmg/custom-mpt">Custom Mount Point</div>
+                        <input id="userDefinedMountPoint" class="fluid-input" type="text" placeholder="diskmg/mpt-placeholder">
                     </div>
                 </div>
             </div>
             <div class="funcmenuBottom">
-                <button class="mac-btn" onclick="hideAllFuncMenu();">Cancel</button>
-                <button class="mac-btn primary" onclick="mountThisDev();">Mount</button>
+                <button class="mac-btn" onclick="hideAllFuncMenu();" locale="diskmg/cancel">Cancel</button>
+                <button class="mac-btn primary" onclick="mountThisDev();" locale="diskmg/mount">Mount</button>
             </div>
         </div>
 
         <!-- ── Loader ── -->
         <div id="loaderUI">
             <div class="loader-spinner"></div>
-            <div class="loader-text">Waiting for system response…</div>
+            <div class="loader-text" locale="diskmg/waiting">Waiting for system response…</div>
         </div>
 
         <!-- ── Backdrop ── -->
@@ -641,14 +642,18 @@
             var volumeData = null;
             var formatPendingDevInfo;
             var selectedDiskKey = null;
+            var appLocale = NewAppLocale();
 
             /* Partition segment colors — macOS palette */
             var SEG_COLORS = ["#007AFF","#34c759","#ff9500","#af52de","#ff2d55","#5ac8fa","#ffcc00","#ff6b35"];
 
-            $.get(ao_root + "system/disk/diskmg/platform", function(data){
-                mode = (data === "windows") ? "windows" : "linux";
-                initData();
-                initMountPointList();
+            appLocale.init("../locale/diskmg.json", function(){
+                appLocale.translate();
+                $.get(ao_root + "system/disk/diskmg/platform", function(data){
+                    mode = (data === "windows") ? "windows" : "linux";
+                    initData();
+                    initMountPointList();
+                });
             });
 
             // ── Helpers ──────────────────────────────────────────────────────
@@ -705,7 +710,7 @@
                 var targetFormat = $("input[name='format']:checked").attr("id");
                 var targetDisk   = formatPendingDevInfo;
                 if (!targetFormat) return;
-                if (!confirm("THIS OPERATION WILL WIPE ALL DATA ON /dev/" + targetDisk[0] + ". ARE YOU SURE?")) return;
+                if (!confirm(appLocale.getString("diskmg/confirm-wipe", "THIS OPERATION WILL WIPE ALL DATA ON /dev/") + targetDisk[0] + appLocale.getString("diskmg/confirm-suffix", ". ARE YOU SURE?"))) return;
                 $("#formatOptions").fadeOut("fast");
                 $(".functMenuDimmer").fadeOut("fast");
                 $("#loaderUI").addClass("active");
@@ -892,7 +897,7 @@
 
                     var allOn  = di.Mounted.every(function(m){ return m === true;  });
                     var allOff = di.Mounted.every(function(m){ return m === false; });
-                    var statusLabel = allOn ? "Mounted" : allOff ? "Not mounted" : "Partial";
+                    var statusLabel = allOn ? appLocale.getString("diskmg/mounted", "Mounted") : allOff ? appLocale.getString("diskmg/not-mounted-s", "Not mounted") : appLocale.getString("diskmg/partial", "Partial");
 
                     (function(k){
                         var itemHtml =
@@ -930,7 +935,7 @@
 
                 var allOn  = di.Mounted.every(function(m){ return m === true;  });
                 var allOff = di.Mounted.every(function(m){ return m === false; });
-                var mountLabel = allOn ? "Mounted" : allOff ? "Not Mounted" : "Partially Mounted";
+                var mountLabel = allOn ? appLocale.getString("diskmg/mounted", "Mounted") : allOff ? appLocale.getString("diskmg/not-mounted", "Not Mounted") : appLocale.getString("diskmg/partially", "Partially Mounted");
                 var typeShort  = (di.Type[0] || "Disk").split(" ")[0];
 
                 /* ── Colored storage bar ── */
@@ -941,7 +946,7 @@
                     var pvol    = parseInt(di.partitionVolume[k]);
                     var pct     = (total > 0) ? (pvol / total * 100).toFixed(3) : 0;
                     var color   = (pvol === 0) ? "#e5e5ea" : SEG_COLORS[k % SEG_COLORS.length];
-                    var partLabel = di.partitionID[k] || "Unallocated";
+                    var partLabel = di.partitionID[k] || appLocale.getString("diskmg/unallocated", "Unallocated");
 
                     barSegs   += "<div class='storage-bar-seg' style='width:" + pct + "%;background:" + color + ";'></div>";
                     legendHtml += "<div class='legend-item'>" +
@@ -961,24 +966,24 @@
                     var color  = (pvol === 0) ? "#aeaeb2" : SEG_COLORS[k % SEG_COLORS.length];
 
                     var dotCls      = "dot-mounted";
-                    var statusLabel = "Mounted";
+                    var statusLabel = appLocale.getString("diskmg/mounted", "Mounted");
                     var isUnalloc   = false;
 
                     if (pvol === 0){
                         dotCls      = "dot-unalloc";
-                        statusLabel = "Unallocated";
+                        statusLabel = appLocale.getString("diskmg/unallocated", "Unallocated");
                         pname       = "—";
                         pfmt        = "—";
                         isUnalloc   = true;
                     } else if (!pmnt){
                         dotCls      = "dot-unmounted";
-                        statusLabel = "Not Mounted";
+                        statusLabel = appLocale.getString("diskmg/not-mounted", "Not Mounted");
                         if (!pname || pname === ""){
-                            pname = (mode === "linux" && di.Format[k] === "raw") ? "Unallocated" : "—";
+                            pname = (mode === "linux" && di.Format[k] === "raw") ? appLocale.getString("diskmg/unallocated", "Unallocated") : "—";
                         }
                     } else {
                         if (!pname || pname === ""){
-                            pname = (mode === "windows") ? "Local Disk" : "—";
+                            pname = (mode === "windows") ? appLocale.getString("diskmg/local-disk", "Local Disk") : "—";
                         }
                     }
 
@@ -1011,7 +1016,7 @@
                         "</tr>";
                 }
 
-                var mountColLabel = (mode === "windows") ? "Name" : "Mount Point";
+                var mountColLabel = (mode === "windows") ? appLocale.getString("diskmg/col-name", "Name") : appLocale.getString("diskmg/col-mountpt", "Mount Point");
 
                 var html =
                     "<div class='disk-header-card'>" +
@@ -1022,21 +1027,21 @@
                             "<div class='storage-bar'>" + barSegs + "</div>" +
                             "<div class='storage-bar-legend'>" + legendHtml + "</div>" +
                             "<div class='disk-header-stats'>" +
-                                "<div><div class='stat-label'>Capacity</div><div class='stat-value'>" + bytesToSize(total) + "</div></div>" +
-                                "<div><div class='stat-label'>Partitions</div><div class='stat-value'>" + di.partitionID.length + "</div></div>" +
+                                "<div><div class='stat-label'>" + appLocale.getString("diskmg/capacity", "Capacity") + "</div><div class='stat-value'>" + bytesToSize(total) + "</div></div>" +
+                                "<div><div class='stat-label'>" + appLocale.getString("diskmg/partitions", "Partitions") + "</div><div class='stat-value'>" + di.partitionID.length + "</div></div>" +
                             "</div>" +
                         "</div>" +
                     "</div>" +
                     "<div class='partition-card'>" +
-                        "<div class='partition-card-header'>Partitions &amp; Volumes</div>" +
+                        "<div class='partition-card-header'>" + appLocale.getString("diskmg/parts-volumes", "Partitions &amp; Volumes") + "</div>" +
                         "<table class='partition-table'>" +
                             "<thead><tr>" +
-                                "<th>Device</th>" +
+                                "<th>" + appLocale.getString("diskmg/col-device", "Device") + "</th>" +
                                 "<th>" + mountColLabel + "</th>" +
-                                "<th>Format</th>" +
-                                "<th>Size</th>" +
-                                "<th>Status</th>" +
-                                "<th>Usage</th>" +
+                                "<th>" + appLocale.getString("diskmg/format-label-col", "Format") + "</th>" +
+                                "<th>" + appLocale.getString("diskmg/col-size", "Size") + "</th>" +
+                                "<th>" + appLocale.getString("diskmg/col-status", "Status") + "</th>" +
+                                "<th>" + appLocale.getString("diskmg/col-usage", "Usage") + "</th>" +
                             "</tr></thead>" +
                             "<tbody>" + tableRows + "</tbody>" +
                         "</table>" +
@@ -1081,9 +1086,9 @@
                             $("#mtbtn").removeClass("disabled");
                             $("#formatDisk").removeClass("disabled");
                         }
-                        $("#mtbtn").html('<i class="eject icon"></i> Unmount');
+                        $("#mtbtn").html('<i class="eject icon"></i> ' + appLocale.getString("diskmg/unmount", "Unmount"));
                     } else {
-                        $("#mtbtn").html('<i class="plug icon"></i> Mount').removeClass("disabled");
+                        $("#mtbtn").html('<i class="plug icon"></i> ' + appLocale.getString("diskmg/mount", "Mount")).removeClass("disabled");
                         $("#formatDisk").removeClass("disabled");
                     }
                     return false;

+ 274 - 0
src/web/SystemAO/locale/diskmg.json

@@ -0,0 +1,274 @@
+{
+    "author": "tobychui",
+    "version": "1.0",
+    "keys": {
+        "zh-tw": {
+            "fwtitle": "磁碟管理",
+            "fontFamily": "\"Microsoft JhengHei\",\"SimHei\",\"Apple LiGothic Medium\",\"STHeiti\"",
+            "strings": {
+                "diskmg/window-title": "磁碟管理",
+                "diskmg/sidebar-header": "磁碟",
+                "diskmg/loading": "載入中…",
+                "diskmg/select-disk": "選擇磁碟以查看詳細資訊",
+                "diskmg/erase": "清除…",
+                "diskmg/mount": "掛載",
+                "diskmg/unmount": "卸載",
+                "diskmg/erase-title": "清除分割區",
+                "diskmg/erase-warning": "⚠ 此操作將永久刪除所選分割區上的所有資料,請在繼續之前備份重要檔案。",
+                "diskmg/format-label": "格式",
+                "diskmg/cancel": "取消",
+                "diskmg/erase-btn": "清除",
+                "diskmg/mount-title": "掛載磁碟機",
+                "diskmg/mount-desc": "選擇此裝置的掛載點。",
+                "diskmg/custom-mpt": "自訂掛載點",
+                "diskmg/waiting": "等待系統回應…",
+                "diskmg/mounted": "已掛載",
+                "diskmg/not-mounted": "未掛載",
+                "diskmg/not-mounted-s": "未掛載",
+                "diskmg/partial": "部分掛載",
+                "diskmg/partially": "部分已掛載",
+                "diskmg/unallocated": "未配置",
+                "diskmg/capacity": "容量",
+                "diskmg/partitions": "分割區",
+                "diskmg/parts-volumes": "分割區與磁碟區",
+                "diskmg/col-device": "裝置",
+                "diskmg/col-mountpt": "掛載點",
+                "diskmg/col-name": "名稱",
+                "diskmg/format-label-col": "格式",
+                "diskmg/col-size": "大小",
+                "diskmg/col-status": "狀態",
+                "diskmg/col-usage": "使用率",
+                "diskmg/local-disk": "本機磁碟",
+                "diskmg/confirm-wipe": "此操作將清除 /dev/",
+                "diskmg/confirm-suffix": " 上的所有資料。確定要繼續嗎?"
+            },
+            "titles": {},
+            "placeholder": {
+                "diskmg/mpt-placeholder": "例:/mnt/data"
+            }
+        },
+        "zh-hk": {
+            "fwtitle": "磁碟管理",
+            "fontFamily": "\"Microsoft JhengHei\",\"SimHei\",\"Apple LiGothic Medium\",\"STHeiti\"",
+            "strings": {
+                "diskmg/window-title": "磁碟管理",
+                "diskmg/sidebar-header": "磁碟",
+                "diskmg/loading": "載入中…",
+                "diskmg/select-disk": "選擇磁碟以查看詳細資訊",
+                "diskmg/erase": "清除…",
+                "diskmg/mount": "掛載",
+                "diskmg/unmount": "卸載",
+                "diskmg/erase-title": "清除分割區",
+                "diskmg/erase-warning": "⚠ 此操作將永久刪除所選分割區上的所有資料,請在繼續之前備份重要檔案。",
+                "diskmg/format-label": "格式",
+                "diskmg/cancel": "取消",
+                "diskmg/erase-btn": "清除",
+                "diskmg/mount-title": "掛載磁碟機",
+                "diskmg/mount-desc": "選擇此裝置的掛載點。",
+                "diskmg/custom-mpt": "自訂掛載點",
+                "diskmg/waiting": "等待系統回應…",
+                "diskmg/mounted": "已掛載",
+                "diskmg/not-mounted": "未掛載",
+                "diskmg/not-mounted-s": "未掛載",
+                "diskmg/partial": "部分掛載",
+                "diskmg/partially": "部分已掛載",
+                "diskmg/unallocated": "未配置",
+                "diskmg/capacity": "容量",
+                "diskmg/partitions": "分割區",
+                "diskmg/parts-volumes": "分割區與磁碟區",
+                "diskmg/col-device": "裝置",
+                "diskmg/col-mountpt": "掛載點",
+                "diskmg/col-name": "名稱",
+                "diskmg/format-label-col": "格式",
+                "diskmg/col-size": "大小",
+                "diskmg/col-status": "狀態",
+                "diskmg/col-usage": "使用率",
+                "diskmg/local-disk": "本機磁碟",
+                "diskmg/confirm-wipe": "此操作將清除 /dev/",
+                "diskmg/confirm-suffix": " 上的所有資料。確定要繼續嗎?"
+            },
+            "titles": {},
+            "placeholder": {
+                "diskmg/mpt-placeholder": "例:/mnt/data"
+            }
+        },
+        "zh-cn": {
+            "fwtitle": "磁盘管理",
+            "fontFamily": "\"Microsoft YaHei\",\"SimHei\",\"PingFangSC-Medium\",\"STHeiti\"",
+            "strings": {
+                "diskmg/window-title": "磁盘管理",
+                "diskmg/sidebar-header": "磁盘",
+                "diskmg/loading": "加载中…",
+                "diskmg/select-disk": "选择磁盘以查看详细信息",
+                "diskmg/erase": "清除…",
+                "diskmg/mount": "挂载",
+                "diskmg/unmount": "卸载",
+                "diskmg/erase-title": "清除分区",
+                "diskmg/erase-warning": "⚠ 此操作将永久删除所选分区上的所有数据,请在继续之前备份重要文件。",
+                "diskmg/format-label": "格式",
+                "diskmg/cancel": "取消",
+                "diskmg/erase-btn": "清除",
+                "diskmg/mount-title": "挂载磁盘",
+                "diskmg/mount-desc": "选择此设备的挂载点。",
+                "diskmg/custom-mpt": "自定义挂载点",
+                "diskmg/waiting": "等待系统响应…",
+                "diskmg/mounted": "已挂载",
+                "diskmg/not-mounted": "未挂载",
+                "diskmg/not-mounted-s": "未挂载",
+                "diskmg/partial": "部分挂载",
+                "diskmg/partially": "部分已挂载",
+                "diskmg/unallocated": "未分配",
+                "diskmg/capacity": "容量",
+                "diskmg/partitions": "分区",
+                "diskmg/parts-volumes": "分区与卷",
+                "diskmg/col-device": "设备",
+                "diskmg/col-mountpt": "挂载点",
+                "diskmg/col-name": "名称",
+                "diskmg/format-label-col": "格式",
+                "diskmg/col-size": "大小",
+                "diskmg/col-status": "状态",
+                "diskmg/col-usage": "使用率",
+                "diskmg/local-disk": "本地磁盘",
+                "diskmg/confirm-wipe": "此操作将清除 /dev/",
+                "diskmg/confirm-suffix": " 上的所有数据。确定要继续吗?"
+            },
+            "titles": {},
+            "placeholder": {
+                "diskmg/mpt-placeholder": "例:/mnt/data"
+            }
+        },
+        "en-us": {
+            "fwtitle": "Disk Management",
+            "strings": {
+                "diskmg/window-title": "Disk Management",
+                "diskmg/sidebar-header": "Disks",
+                "diskmg/loading": "Loading…",
+                "diskmg/select-disk": "Select a disk to view details",
+                "diskmg/erase": "Erase…",
+                "diskmg/mount": "Mount",
+                "diskmg/unmount": "Unmount",
+                "diskmg/erase-title": "Erase Partition",
+                "diskmg/erase-warning": "⚠ This will permanently erase all data on the selected partition. Back up important files before continuing.",
+                "diskmg/format-label": "Format",
+                "diskmg/cancel": "Cancel",
+                "diskmg/erase-btn": "Erase",
+                "diskmg/mount-title": "Mount Drive",
+                "diskmg/mount-desc": "Select a mount point for this device.",
+                "diskmg/custom-mpt": "Custom Mount Point",
+                "diskmg/waiting": "Waiting for system response…",
+                "diskmg/mounted": "Mounted",
+                "diskmg/not-mounted": "Not Mounted",
+                "diskmg/not-mounted-s": "Not mounted",
+                "diskmg/partial": "Partial",
+                "diskmg/partially": "Partially Mounted",
+                "diskmg/unallocated": "Unallocated",
+                "diskmg/capacity": "Capacity",
+                "diskmg/partitions": "Partitions",
+                "diskmg/parts-volumes": "Partitions &amp; Volumes",
+                "diskmg/col-device": "Device",
+                "diskmg/col-mountpt": "Mount Point",
+                "diskmg/col-name": "Name",
+                "diskmg/format-label-col": "Format",
+                "diskmg/col-size": "Size",
+                "diskmg/col-status": "Status",
+                "diskmg/col-usage": "Usage",
+                "diskmg/local-disk": "Local Disk",
+                "diskmg/confirm-wipe": "THIS OPERATION WILL WIPE ALL DATA ON /dev/",
+                "diskmg/confirm-suffix": ". ARE YOU SURE?"
+            },
+            "titles": {},
+            "placeholder": {
+                "diskmg/mpt-placeholder": "e.g. /mnt/data"
+            }
+        },
+        "ja-jp": {
+            "fwtitle": "ディスク管理",
+            "fontFamily": "\"Meiryo UI\",\"Arial Unicode MS\",\"Hiragino Kaku Gothic Pro\"",
+            "strings": {
+                "diskmg/window-title": "ディスク管理",
+                "diskmg/sidebar-header": "ディスク",
+                "diskmg/loading": "読み込み中…",
+                "diskmg/select-disk": "ディスクを選択して詳細を表示",
+                "diskmg/erase": "消去…",
+                "diskmg/mount": "マウント",
+                "diskmg/unmount": "アンマウント",
+                "diskmg/erase-title": "パーティションを消去",
+                "diskmg/erase-warning": "⚠ この操作を行うと、選択したパーティション上のすべてのデータが完全に消去されます。続行する前に重要なファイルをバックアップしてください。",
+                "diskmg/format-label": "フォーマット",
+                "diskmg/cancel": "キャンセル",
+                "diskmg/erase-btn": "消去",
+                "diskmg/mount-title": "ドライブをマウント",
+                "diskmg/mount-desc": "このデバイスのマウントポイントを選択してください。",
+                "diskmg/custom-mpt": "カスタムマウントポイント",
+                "diskmg/waiting": "システムの応答を待機中…",
+                "diskmg/mounted": "マウント済み",
+                "diskmg/not-mounted": "未マウント",
+                "diskmg/not-mounted-s": "未マウント",
+                "diskmg/partial": "一部マウント",
+                "diskmg/partially": "一部マウント済み",
+                "diskmg/unallocated": "未割り当て",
+                "diskmg/capacity": "容量",
+                "diskmg/partitions": "パーティション",
+                "diskmg/parts-volumes": "パーティションとボリューム",
+                "diskmg/col-device": "デバイス",
+                "diskmg/col-mountpt": "マウントポイント",
+                "diskmg/col-name": "名前",
+                "diskmg/format-label-col": "フォーマット",
+                "diskmg/col-size": "サイズ",
+                "diskmg/col-status": "状態",
+                "diskmg/col-usage": "使用率",
+                "diskmg/local-disk": "ローカルディスク",
+                "diskmg/confirm-wipe": "この操作により /dev/",
+                "diskmg/confirm-suffix": " のすべてのデータが消去されます。本当に続行しますか?"
+            },
+            "titles": {},
+            "placeholder": {
+                "diskmg/mpt-placeholder": "例:/mnt/data"
+            }
+        },
+        "ko-kr": {
+            "fwtitle": "디스크 관리",
+            "strings": {
+                "diskmg/window-title": "디스크 관리",
+                "diskmg/sidebar-header": "디스크",
+                "diskmg/loading": "로드 중…",
+                "diskmg/select-disk": "디스크를 선택하여 세부 정보 보기",
+                "diskmg/erase": "지우기…",
+                "diskmg/mount": "마운트",
+                "diskmg/unmount": "마운트 해제",
+                "diskmg/erase-title": "파티션 지우기",
+                "diskmg/erase-warning": "⚠ 이 작업은 선택한 파티션의 모든 데이터를 영구적으로 삭제합니다. 계속하기 전에 중요한 파일을 백업하세요.",
+                "diskmg/format-label": "형식",
+                "diskmg/cancel": "취소",
+                "diskmg/erase-btn": "지우기",
+                "diskmg/mount-title": "드라이브 마운트",
+                "diskmg/mount-desc": "이 장치의 마운트 포인트를 선택하세요.",
+                "diskmg/custom-mpt": "사용자 지정 마운트 포인트",
+                "diskmg/waiting": "시스템 응답 대기 중…",
+                "diskmg/mounted": "마운트됨",
+                "diskmg/not-mounted": "마운트 안 됨",
+                "diskmg/not-mounted-s": "마운트 안 됨",
+                "diskmg/partial": "부분 마운트",
+                "diskmg/partially": "부분적으로 마운트됨",
+                "diskmg/unallocated": "할당되지 않음",
+                "diskmg/capacity": "용량",
+                "diskmg/partitions": "파티션",
+                "diskmg/parts-volumes": "파티션 및 볼륨",
+                "diskmg/col-device": "장치",
+                "diskmg/col-mountpt": "마운트 포인트",
+                "diskmg/col-name": "이름",
+                "diskmg/format-label-col": "형식",
+                "diskmg/col-size": "크기",
+                "diskmg/col-status": "상태",
+                "diskmg/col-usage": "사용률",
+                "diskmg/local-disk": "로컬 디스크",
+                "diskmg/confirm-wipe": "이 작업은 /dev/",
+                "diskmg/confirm-suffix": "의 모든 데이터를 삭제합니다. 계속하시겠습니까?"
+            },
+            "titles": {},
+            "placeholder": {
+                "diskmg/mpt-placeholder": "예:/mnt/data"
+            }
+        }
+    }
+}