Keine Beschreibung

fix_waybill_detail_zh.py 9.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. # -*- coding: utf-8 -*-
  2. """Fix Chinese text in WaybillDetail.vue."""
  3. import os
  4. OUT = os.path.join(
  5. os.path.dirname(os.path.dirname(__file__)),
  6. "ruoyi-ui", "src", "views", "basic", "waybill", "components", "WaybillDetail.vue",
  7. )
  8. REPLACEMENTS = [
  9. ('<span class="waybill-label">??????</span>', '<span class="waybill-label">\u8fd0\u5355\u7f16\u53f7</span>'),
  10. ('<i class="el-icon-warning-outline"></i> ?????</el-tag>', '<i class="el-icon-warning-outline"></i> \u6e29\u5ea6\u5f02\u5e38</el-tag>'),
  11. ('<span>???????{{ detail.createBy', '<span>\u521b\u5efa\u4eba\uff1a{{ detail.createBy'),
  12. ('@click="contactDriver">??????</el-button>', '@click="contactDriver">\u8054\u7cfb\u53f8\u673a</el-button>'),
  13. ('@click="handleAlarm">???????</el-button>', '@click="handleAlarm">\u5904\u7406\u544a\u8b66</el-button>'),
  14. ('@click="confirmReceipt">??????</el-button>', '@click="confirmReceipt">\u786e\u8ba4\u7b7e\u6536</el-button>'),
  15. ('<i class="el-icon-document"></i> ???????</div>', '<i class="el-icon-document"></i> \u57fa\u672c\u4fe1\u606f</div>'),
  16. ('label="???????">{{ detail.senderCompany', 'label="\u53d1\u8d27\u4f01\u4e1a">{{ detail.senderCompany'),
  17. ('label="??????">{{ detail.receiverCompany', 'label="\u6536\u8d27\u4f01\u4e1a">{{ detail.receiverCompany'),
  18. ('label="???????" :span="2">{{ senderFullAddress', 'label="\u53d1\u8d27\u5730\u5740" :span="2">{{ senderFullAddress'),
  19. ('label="??????" :span="2">{{ receiverFullAddress', 'label="\u6536\u8d27\u5730\u5740" :span="2">{{ receiverFullAddress'),
  20. ('label="???????">{{ formatDateTime(detail.planDepartTime)', 'label="\u53d1\u8d27\u65f6\u95f4">{{ formatDateTime(detail.planDepartTime)'),
  21. ('label="??????">{{ formatDateTime(detail.planArriveTime)', 'label="\u9884\u8ba1\u5230\u8fbe">{{ formatDateTime(detail.planArriveTime)'),
  22. ('label="????????">', 'label="\u5173\u8054\u8f66\u8f86">'),
  23. ('label="????">{{ detail.driverName', 'label="\u9a7e\u9a76\u5458">{{ detail.driverName'),
  24. ('label="??????">{{ tempRequireText', 'label="\u6e29\u5ea6\u8981\u6c42">{{ tempRequireText'),
  25. ('label="????????">{{ routeText', 'label="\u8fd0\u8f93\u7ebf\u8def">{{ routeText'),
  26. ('<i class="el-icon-goods"></i> ???????</div>', '<i class="el-icon-goods"></i> \u8d27\u7269\u660e\u7ec6</div>'),
  27. ('label="????????" prop="cargoName"', 'label="\u8d27\u7269\u540d\u79f0" prop="cargoName"'),
  28. ('label="???" prop="specModel"', 'label="\u89c4\u683c" prop="specModel"'),
  29. ('label="????" prop="quantity"', 'label="\u6570\u91cf" prop="quantity"'),
  30. ('label="????" prop="weightKg"', 'label="\u91cd\u91cf" prop="weightKg"'),
  31. ('label="???" prop="cargoValue"', 'label="\u8d27\u503c" prop="cargoValue"'),
  32. ('>?{{ formatMoney', '>\u00a5{{ formatMoney'),
  33. ('<i class="el-icon-data-line"></i> ???????</div>', '<i class="el-icon-data-line"></i> \u6e29\u5ea6\u66f2\u7ebf</div>'),
  34. ('<i class="el-icon-truck"></i> ?????????</div>', '<i class="el-icon-truck"></i> \u8fd0\u8f93\u5b9e\u65f6\u52a8\u6001</div>'),
  35. ('<span class="stat-label">???????</span>', '<span class="stat-label">\u5f53\u524d\u4f4d\u7f6e</span>', 1),
  36. ('<span class="stat-label">??????</span>', '<span class="stat-label">\u5f53\u524d\u6e29\u5ea6</span>', 1),
  37. ('{{ tracking.currentTemp }}??C', '{{ tracking.currentTemp }}\u00b0C'),
  38. ('effect="plain">????</el-tag>', 'effect="plain">\u8d85\u9650</el-tag>'),
  39. ('<span class="stat-label">???????</span>', '<span class="stat-label">\u5f53\u524d\u8f66\u901f</span>'),
  40. ('<span class="stat-label">??????</span>', '<span class="stat-label">\u9884\u8ba1\u5230\u8fbe</span>'),
  41. ('(???{{ tracking.remainTime }})', '(\u5269\u4f59{{ tracking.remainTime }})'),
  42. ('<span class="stat-label">????? / ??????</span>', '<span class="stat-label">\u5df2\u884c\u9a76 / \u5269\u4f59\u91cc\u7a0b</span>'),
  43. ('<i class="el-icon-sunny"></i> ???</div>', '<i class="el-icon-sunny"></i> \u6e29\u5ea6</div>'),
  44. ('<div class="temp-card-label">??????</div>', '<div class="temp-card-label">\u5f53\u524d\u6e29\u5ea6</div>', 1),
  45. ('{{ tempStats.current }}??C', '{{ tempStats.current }}\u00b0C'),
  46. ('{{ tempStats.max }}??C', '{{ tempStats.max }}\u00b0C'),
  47. ('{{ tempStats.min }}??C', '{{ tempStats.min }}\u00b0C'),
  48. ('{{ tempStats.avg }}??C', '{{ tempStats.avg }}\u00b0C'),
  49. ("'?????????????? ' + tempStats.alarmCount + '????'", "'\u672c\u6b21\u8fd0\u8f93\u544a\u8b66\u6b21\u6570 ' + tempStats.alarmCount + '\u6b21\u544a\u8b66'"),
  50. ('<i class="el-icon-folder-opened"></i> ???????</div>', '<i class="el-icon-folder-opened"></i> \u9644\u4ef6\u6587\u6863</div>'),
  51. ('@click="previewFile(file)">???</el-button>', '@click="previewFile(file)">\u9884\u89c8</el-button>'),
  52. ('@click="downloadFile(file)">????</el-button>', '@click="downloadFile(file)">\u4e0b\u8f7d</el-button>'),
  53. ('class="empty-attach">???????</div>', 'class="empty-attach">\u6682\u65e0\u9644\u4ef6</div>'),
  54. ('return d.tempMin + "??C ~ " + d.tempMax + "??C"', 'return d.tempMin + "\u00b0C ~ " + d.tempMax + "\u00b0C"'),
  55. ('return "?? " + d.tempMax + "??C"', 'return "\u2264 " + d.tempMax + "\u00b0C"'),
  56. ('return "?? " + d.tempMin + "??C"', 'return "\u2265 " + d.tempMin + "\u00b0C"'),
  57. ('return from + " ?? " + to + "??" + d.lineName + "??"', 'return from + " \u2192 " + to + "\uff08" + d.lineName + "\uff09"'),
  58. ('return from && to ? from + " ?? " + to : "-"', 'return from && to ? from + " \u2192 " + to : "-"'),
  59. ('const t4 = "???" + this.formatTimeShort', 'const t4 = "\u9884\u8ba1" + this.formatTimeShort'),
  60. ('{ title: "????", desc: t0', '{ title: "\u5355\u636e", desc: t0'),
  61. ('{ title: "?????", desc: t1', '{ title: "\u5df2\u786e\u8ba4", desc: t1'),
  62. ('{ title: "?????", desc: t2', '{ title: "\u88c5\u8f66\u4e2d", desc: t2'),
  63. ('{ title: "???", desc: t3', '{ title: "\u5728\u9014", desc: t3'),
  64. ('{ title: "?????", desc: t4', '{ title: "\u5df2\u5230\u8fbe", desc: t4'),
  65. ('{ title: "?????", desc: this.formatTimeShort(d.planSignTime)', '{ title: "\u5df2\u7b7e\u6536", desc: this.formatTimeShort(d.planSignTime)'),
  66. ('{ title: "????", desc: "", icon: "el-icon-lock"', '{ title: "\u5df2\u5173\u95ed", desc: "", icon: "el-icon-lock"'),
  67. ('{ name: no + "_?????.pdf"', '{ name: no + "_\u53d1\u8fd0\u5355.pdf"'),
  68. ('{ name: no + "_????.pdf"', '{ name: no + "_\u7b7e\u6536\u5355.pdf"'),
  69. ('{ name: no + "_?????.pdf", time: base }', '{ name: no + "_\u6e29\u5ea6\u8bb0\u5f55.pdf", time: base }'),
  70. ('statusText: "???"', 'statusText: "\u8349\u7a3f"'),
  71. ('statusText: "?????"', 'statusText: "\u5f85\u5ba1\u6838"', 1),
  72. ('statusText: "?????"', 'statusText: "\u5df2\u786e\u8ba4"'),
  73. ('statusText: "???"', 'statusText: "\u5728\u9014"'),
  74. ('statusText: "?????"', 'statusText: "\u5df2\u5230\u8fbe"'),
  75. ('statusText: "?????"', 'statusText: "\u5df2\u901a\u8fc7"'),
  76. ('const fromCity = d.senderCity || "???"', 'const fromCity = d.senderCity || "\u8d77\u70b9"'),
  77. ('"??????????? 107????"', '"\u4e1c\u839e\u5e02\u864e\u95e8\u9547 107\u56fd\u9053"'),
  78. ('name: "??C"', 'name: "\u00b0C"'),
  79. ('formatter: "???? " + max + "??C"', 'formatter: "\u4e0a\u9650 " + max + "\u00b0C"'),
  80. ('formatter: "???? " + min + "??C"', 'formatter: "\u4e0b\u9650 " + min + "\u00b0C"'),
  81. ('sums[index] = "???"', 'sums[index] = "\u5408\u8ba1"'),
  82. ('sums[index] = "?" + data.reduce', 'sums[index] = "\u00a5" + data.reduce'),
  83. ('msgSuccess("\u8054\u7cfb\u53f8\u673a"', 'msgSuccess("\u53f8\u673a\u7535\u8bdd\uff1a"'),
  84. ('msgSuccess("????????" + phone)', 'msgSuccess("\u53f8\u673a\u7535\u8bdd\uff1a" + phone'),
  85. ('msgWarning("?????????????")', 'msgWarning("\u6682\u65e0\u53f8\u673a\u8054\u7cfb\u7535\u8bdd")'),
  86. ('msgSuccess("??????????????????")', 'msgSuccess("\u544a\u8b66\u5df2\u8bb0\u5f55\uff0c\u8bf7\u8ddf\u8fdb\u5904\u7406")'),
  87. ('confirm("??????????????")', 'confirm("\u786e\u8ba4\u8be5\u8fd0\u5355\u5df2\u7b7e\u6536\u5417\uff1f")'),
  88. ('msgSuccess("??????????")', 'msgSuccess("\u7b7e\u6536\u786e\u8ba4\u5df2\u63d0\u4ea4")'),
  89. ('msgInfo("?????" + file.name)', 'msgInfo("\u9884\u89c8\uff1a" + file.name)'),
  90. ('msgInfo("?????" + file.name)', 'msgInfo("\u4e0b\u8f7d\uff1a" + file.name)'),
  91. ]
  92. # temp-card labels need second pass with unique context
  93. TEMP_LABELS = [
  94. ('temp-card max">\n <div class="temp-card-label">??????</div>', 'temp-card max">\n <div class="temp-card-label">\u6700\u9ad8\u6e29\u5ea6</div>'),
  95. ('temp-card min">\n <div class="temp-card-label">??????</div>', 'temp-card min">\n <div class="temp-card-label">\u6700\u4f4e\u6e29\u5ea6</div>'),
  96. ('temp-card avg">\n <div class="temp-card-label">??????</div>', 'temp-card avg">\n <div class="temp-card-label">\u5e73\u5747\u6e29\u5ea6</div>'),
  97. ]
  98. def main():
  99. text = open(OUT, encoding="utf-8").read()
  100. for item in REPLACEMENTS:
  101. old, new = item[0], item[1]
  102. count = item[2] if len(item) > 2 else None
  103. if count == 1:
  104. text = text.replace(old, new, 1)
  105. else:
  106. text = text.replace(old, new)
  107. for old, new in TEMP_LABELS:
  108. text = text.replace(old, new)
  109. # fix duplicate stat-label replacements - re-read and fix remaining
  110. text = text.replace(
  111. '<span class="stat-label">\u5f53\u524d\u6e29\u5ea6</span>\n <span class="stat-value">{{ tracking.speed }}',
  112. '<span class="stat-label">\u5f53\u524d\u8f66\u901f</span>\n <span class="stat-value">{{ tracking.speed }}'
  113. )
  114. open(OUT, "w", encoding="utf-8", newline="\n").write(text)
  115. t = open(OUT, encoding="utf-8").read()
  116. assert "\u8fd0\u5355\u7f16\u53f7" in t and "\u5728\u9014" in t
  117. print("fixed", OUT)
  118. if __name__ == "__main__":
  119. main()