diff --git a/src/call_game_python.py b/src/call_game_python.py
index 9471684..e27085b 100644
--- a/src/call_game_python.py
+++ b/src/call_game_python.py
@@ -70,3 +70,11 @@ def get_py_path(game_path):
def copy_files_under_directory_to_directory(src_dir, desc_dir):
shutil.copytree(src_dir, desc_dir, dirs_exist_ok=True)
+
+def get_game_path_from_game_dir(game_dir):
+ for item in os.listdir(game_dir):
+ full_path = os.path.join(game_dir, item)
+ if os.path.isfile(full_path) and item.lower().endswith('.exe'):
+ if os.path.isfile(full_path[:-len('.exe')] + '.py'):
+ return full_path
+ return None
diff --git a/src/error_repair.py b/src/error_repair.py
new file mode 100644
index 0000000..7b3b724
--- /dev/null
+++ b/src/error_repair.py
@@ -0,0 +1,65 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'error_repair.ui'
+##
+## Created by: Qt User Interface Compiler version 6.6.1
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QDialog, QLabel, QLineEdit,
+ QPushButton, QSizePolicy, QTextEdit, QWidget)
+
+class Ui_ErrorRepairDialog(object):
+ def setupUi(self, ErrorRepairDialog):
+ if not ErrorRepairDialog.objectName():
+ ErrorRepairDialog.setObjectName(u"ErrorRepairDialog")
+ ErrorRepairDialog.resize(666, 250)
+ self.selectFileBtn = QPushButton(ErrorRepairDialog)
+ self.selectFileBtn.setObjectName(u"selectFileBtn")
+ self.selectFileBtn.setGeometry(QRect(530, 30, 81, 91))
+ self.selectFileBtn.setText(u"...")
+ self.label = QLabel(ErrorRepairDialog)
+ self.label.setObjectName(u"label")
+ self.label.setGeometry(QRect(40, 45, 71, 61))
+ self.label.setWordWrap(True)
+ self.selectFileText = QTextEdit(ErrorRepairDialog)
+ self.selectFileText.setObjectName(u"selectFileText")
+ self.selectFileText.setGeometry(QRect(120, 30, 411, 91))
+ self.selectFileText.setPlaceholderText(u"Example:F:/DemoGame.exe")
+ self.label_2 = QLabel(ErrorRepairDialog)
+ self.label_2.setObjectName(u"label_2")
+ self.label_2.setGeometry(QRect(40, 150, 211, 61))
+ self.label_2.setWordWrap(True)
+ self.maxRecursionLineEdit = QLineEdit(ErrorRepairDialog)
+ self.maxRecursionLineEdit.setObjectName(u"maxRecursionLineEdit")
+ self.maxRecursionLineEdit.setGeometry(QRect(260, 170, 351, 20))
+ self.maxRecursionLineEdit.setAlignment(Qt.AlignCenter)
+ self.repairBtn = QPushButton(ErrorRepairDialog)
+ self.repairBtn.setObjectName(u"repairBtn")
+ self.repairBtn.setGeometry(QRect(120, 220, 491, 24))
+
+ self.retranslateUi(ErrorRepairDialog)
+
+ QMetaObject.connectSlotsByName(ErrorRepairDialog)
+ # setupUi
+
+ def retranslateUi(self, ErrorRepairDialog):
+ ErrorRepairDialog.setWindowTitle(QCoreApplication.translate("ErrorRepairDialog", u"Error Repair", None))
+ self.label.setText(QCoreApplication.translate("ErrorRepairDialog", u"file", None))
+#if QT_CONFIG(tooltip)
+ self.selectFileText.setToolTip("")
+#endif // QT_CONFIG(tooltip)
+ self.label_2.setText(QCoreApplication.translate("ErrorRepairDialog", u"max repair count", None))
+ self.maxRecursionLineEdit.setText(QCoreApplication.translate("ErrorRepairDialog", u"4", None))
+ self.repairBtn.setText(QCoreApplication.translate("ErrorRepairDialog", u"repair errors", None))
+ # retranslateUi
+
diff --git a/src/error_repair.ui b/src/error_repair.ui
new file mode 100644
index 0000000..f3eb9d5
--- /dev/null
+++ b/src/error_repair.ui
@@ -0,0 +1,109 @@
+
+
+ ErrorRepairDialog
+
+
+
+ 0
+ 0
+ 666
+ 250
+
+
+
+ Error Repair
+
+
+
+
+ 530
+ 30
+ 81
+ 91
+
+
+
+ ...
+
+
+
+
+
+ 40
+ 45
+ 71
+ 61
+
+
+
+ file
+
+
+ true
+
+
+
+
+
+ 120
+ 30
+ 411
+ 91
+
+
+
+
+
+
+ Example:F:/DemoGame.exe
+
+
+
+
+
+ 40
+ 150
+ 211
+ 61
+
+
+
+ max repair count
+
+
+ true
+
+
+
+
+
+ 260
+ 170
+ 351
+ 20
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+
+
+
+ 120
+ 220
+ 491
+ 24
+
+
+
+ repair errors
+
+
+
+
+
+
diff --git a/src/error_repair_form.py b/src/error_repair_form.py
new file mode 100644
index 0000000..b7dfa6c
--- /dev/null
+++ b/src/error_repair_form.py
@@ -0,0 +1,87 @@
+import _thread
+import os
+import threading
+import time
+import traceback
+
+from PySide6.QtCore import QCoreApplication, QThread, Signal
+from PySide6.QtGui import QIntValidator
+from PySide6.QtWidgets import QDialog, QFileDialog
+
+from error_repair import Ui_ErrorRepairDialog
+from my_log import log_print
+from renpy_lint import fix_translation_by_lint_recursion
+
+
+class repairThread(threading.Thread):
+ def __init__(self, path, max_recursion_depth):
+ threading.Thread.__init__(self)
+ self.path = path
+ self.max_recursion_depth = max_recursion_depth
+
+ def run(self):
+ try:
+ log_print('start repairing ...')
+ fix_translation_by_lint_recursion(self.path, self.max_recursion_depth)
+ except Exception as e:
+ msg = traceback.format_exc()
+ log_print(msg)
+
+
+class MyErrorRepairForm(QDialog, Ui_ErrorRepairDialog):
+ def __init__(self, parent=None):
+ super(MyErrorRepairForm, self).__init__(parent)
+ self.setupUi(self)
+ self.setFixedHeight(self.height())
+ self.setFixedWidth(self.width())
+ self.selectFileBtn.clicked.connect(self.select_file)
+ self.repairBtn.clicked.connect(self.repair)
+ self.maxRecursionLineEdit.setValidator(QIntValidator(1, 65535, self))
+ self.repair_thread = None
+ _thread.start_new_thread(self.update, ())
+
+ def repair(self):
+ path = self.selectFileText.toPlainText()
+ path = path.replace('file:///', '')
+ if os.path.isfile(path):
+ if path.endswith('.exe'):
+ t = repairThread(path, int(self.maxRecursionLineEdit.text()))
+ self.repair_thread = t
+ t.start()
+ self.setDisabled(True)
+ self.repairBtn.setText(QCoreApplication.translate('ErrorRepairDialog', 'is repairing...', None))
+
+ def select_file(self):
+ file, filetype = QFileDialog.getOpenFileName(self, 'select the game file', '', "Game Files (*.exe)")
+ self.selectFileText.setText(file)
+
+ def update(self):
+ thread = self.UpdateThread()
+ thread.update_date.connect(self.update_progress)
+ while True:
+ thread.start()
+ time.sleep(0.5)
+
+ def update_progress(self):
+ try:
+ if self.repair_thread is not None:
+ if not self.repair_thread.is_alive():
+ self.repairBtn.setText(QCoreApplication.translate('ErrorRepairDialog', 'repair errors', None))
+ self.setEnabled(True)
+ self.repair_thread = None
+ log_print('error repair complete!')
+ except Exception:
+ msg = traceback.format_exc()
+ log_print(msg)
+
+ class UpdateThread(QThread):
+ update_date = Signal()
+
+ def __init__(self):
+ super().__init__()
+
+ def __del__(self):
+ self.wait()
+
+ def run(self):
+ self.update_date.emit()
\ No newline at end of file
diff --git a/src/main.py b/src/main.py
index 37e81b2..a89672d 100644
--- a/src/main.py
+++ b/src/main.py
@@ -41,6 +41,7 @@
from one_key_translate_form import MyOneKeyTranslateForm
from pack_game_form import MyPackGameForm
from format_form import MyFormationForm
+from error_repair_form import MyErrorRepairForm
from renpy_translate import translateThread, translate_threads, engineList, engineDic, language_header, \
get_translated_dic, web_brower_export_name, get_rpy_info, rpy_info_dic, get_translated, web_brower_translate
from proxy import Ui_ProxyDialog
@@ -55,7 +56,8 @@
sourceDic = dict()
translator = QTranslator()
-VERSION = '2.5.6'
+VERSION = '2.5.7'
+
class MyProxyForm(QDialog, Ui_ProxyDialog):
def __init__(self, parent=None):
@@ -171,6 +173,7 @@ def __init__(self, parent=None):
self.myPackGameForm = None
self.myDefaultLanuageForm = None
self.myFormationForm = None
+ self.myErrorRepairForm = None
self.actioncopyright.triggered.connect(lambda: self.show_copyright_form())
self.proxySettings.triggered.connect(lambda: self.show_proxy_settings())
self.engineSettings.triggered.connect(lambda: self.show_engine_settings())
@@ -179,6 +182,7 @@ def __init__(self, parent=None):
self.actionextract_translation.triggered.connect(lambda: self.show_extraction_form())
self.actionruntime_extraction.triggered.connect(lambda: self.show_extraction_runtime_form())
self.actionreplace_font.triggered.connect(lambda: self.replace_font())
+ self.actionerror_repair.triggered.connect(lambda: self.show_error_repair_form())
self.actionunpack_game.triggered.connect(lambda: self.unpack_game())
self.actionadd_change_langauge_entrance.triggered.connect(lambda: self.show_add_entrance_form())
self.actionone_key_translate.triggered.connect(lambda: self.show_one_key_translate_form())
@@ -225,13 +229,18 @@ def __init__(self, parent=None):
_thread.start_new_thread(self.update_log, ())
+ def show_error_repair_form(self):
+ if self.myErrorRepairForm is None:
+ self.myErrorRepairForm = MyErrorRepairForm(parent=self)
+ self.myErrorRepairForm.parent = self
+ self.myErrorRepairForm.exec()
+
def show_formation_form(self):
if self.myFormationForm is None:
self.myFormationForm = MyFormationForm(parent=self)
self.myFormationForm.parent = self
self.myFormationForm.exec()
-
def show_default_langauge_form(self):
if self.myDefaultLanuageForm is None:
self.myDefaultLanuageForm = MyDefaultLanguageForm(parent=self)
@@ -239,7 +248,7 @@ def show_default_langauge_form(self):
def on_combobox_changed(self):
if os.path.isfile('engine.txt'):
- json_file = open('engine.txt', 'r',encoding='utf-8')
+ json_file = open('engine.txt', 'r', encoding='utf-8')
ori = json.load(json_file)
json_file.close()
current_engine = ori['engine']
@@ -250,7 +259,6 @@ def on_combobox_changed(self):
json_file = open('engine.txt', 'w', encoding='utf-8')
json.dump(ori, json_file)
-
def on_version_label_clicked(self):
try:
latest_release = get_latest_release('anonymousException', 'renpy-translator')
@@ -589,7 +597,7 @@ def init_combobox(self):
@staticmethod
def locate_log():
- open_directory_and_select_file(os.getcwd()+'/'+log_path)
+ open_directory_and_select_file(os.getcwd() + '/' + log_path)
@staticmethod
def clear_log():
@@ -683,7 +691,8 @@ def update_progress(self, data):
self.myFormationForm.formatBtn.setDisabled(True)
else:
if self.myFormationForm is not None:
- self.myFormationForm.formatBtn.setText(QCoreApplication.translate('FormatDialog', 'format rpy files', None))
+ self.myFormationForm.formatBtn.setText(
+ QCoreApplication.translate('FormatDialog', 'format rpy files', None))
self.myFormationForm.formatBtn.setEnabled(True)
class UpdateThread(QThread):
diff --git a/src/one_key_translate.py b/src/one_key_translate.py
index 3da0177..f455cbc 100644
--- a/src/one_key_translate.py
+++ b/src/one_key_translate.py
@@ -108,7 +108,7 @@ def setupUi(self, OneKeyTranslateDialog):
self.label_14.setAlignment(Qt.AlignCenter)
self.startButton = QPushButton(OneKeyTranslateDialog)
self.startButton.setObjectName(u"startButton")
- self.startButton.setGeometry(QRect(620, 500, 401, 251))
+ self.startButton.setGeometry(QRect(620, 620, 401, 131))
self.officialExtractionCheckBox = QCheckBox(OneKeyTranslateDialog)
self.officialExtractionCheckBox.setObjectName(u"officialExtractionCheckBox")
self.officialExtractionCheckBox.setGeometry(QRect(620, 150, 411, 20))
@@ -157,6 +157,19 @@ def setupUi(self, OneKeyTranslateDialog):
self.setDefaultLanguageCheckBox.setObjectName(u"setDefaultLanguageCheckBox")
self.setDefaultLanguageCheckBox.setGeometry(QRect(620, 390, 821, 20))
self.setDefaultLanguageCheckBox.setChecked(True)
+ self.errorRepairCheckBox = QCheckBox(OneKeyTranslateDialog)
+ self.errorRepairCheckBox.setObjectName(u"errorRepairCheckBox")
+ self.errorRepairCheckBox.setGeometry(QRect(620, 510, 411, 20))
+ self.errorRepairCheckBox.setChecked(True)
+ self.maxRecursionLineEdit = QLineEdit(OneKeyTranslateDialog)
+ self.maxRecursionLineEdit.setObjectName(u"maxRecursionLineEdit")
+ self.maxRecursionLineEdit.setGeometry(QRect(620, 590, 401, 20))
+ self.maxRecursionLineEdit.setAlignment(Qt.AlignCenter)
+ self.label_5 = QLabel(OneKeyTranslateDialog)
+ self.label_5.setObjectName(u"label_5")
+ self.label_5.setGeometry(QRect(620, 540, 391, 41))
+ self.label_5.setAlignment(Qt.AlignCenter)
+ self.label_5.setWordWrap(True)
self.retranslateUi(OneKeyTranslateDialog)
@@ -201,5 +214,8 @@ def retranslateUi(self, OneKeyTranslateDialog):
self.rtlCheckBox.setText(QCoreApplication.translate("OneKeyTranslateDialog", u"Enable RTL (Right To Left)", None))
self.label_3.setText(QCoreApplication.translate("OneKeyTranslateDialog", u"(Fix reversed font problem for some languages like arabic, urdu)", None))
self.setDefaultLanguageCheckBox.setText(QCoreApplication.translate("OneKeyTranslateDialog", u"set default language at startup", None))
+ self.errorRepairCheckBox.setText(QCoreApplication.translate("OneKeyTranslateDialog", u"Error Repair", None))
+ self.maxRecursionLineEdit.setText(QCoreApplication.translate("OneKeyTranslateDialog", u"4", None))
+ self.label_5.setText(QCoreApplication.translate("OneKeyTranslateDialog", u"max repair count", None))
# retranslateUi
diff --git a/src/one_key_translate.ui b/src/one_key_translate.ui
index c18036a..d70ab19 100644
--- a/src/one_key_translate.ui
+++ b/src/one_key_translate.ui
@@ -349,9 +349,9 @@
620
- 500
+ 620
401
- 251
+ 131
@@ -544,6 +544,57 @@
true
+
+
+
+ 620
+ 510
+ 411
+ 20
+
+
+
+ Error Repair
+
+
+ true
+
+
+
+
+
+ 620
+ 590
+ 401
+ 20
+
+
+
+ 4
+
+
+ Qt::AlignCenter
+
+
+
+
+
+ 620
+ 540
+ 391
+ 41
+
+
+
+ max repair count
+
+
+ Qt::AlignCenter
+
+
+ true
+
+
diff --git a/src/one_key_translate_form.py b/src/one_key_translate_form.py
index 4d5042f..3138856 100644
--- a/src/one_key_translate_form.py
+++ b/src/one_key_translate_form.py
@@ -33,6 +33,7 @@
import my_log
from font_replace_form import replaceFontThread
import default_language_form
+from error_repair_form import repairThread
from translated_form import MyTranslatedForm
@@ -56,12 +57,14 @@ def __init__(self, parent=None):
self.changeTranslationEngineButton.clicked.connect(self.show_engine_settings)
self.filterLengthLineEdit.setValidator(QIntValidator(1, 99, self))
self.filterLengthLineEdit_2.setValidator(QIntValidator(1, 99, self))
+ self.maxRecursionLineEdit.setValidator(QIntValidator(1, 65535, self))
self.local_glossary = None
self.localGlossaryCheckBox.clicked.connect(self.on_local_glossary_checkbox_state_changed)
self.selectFontBtn.clicked.connect(self.select_font)
self.startButton.clicked.connect(self.on_start_button_clicked)
self.path = None
self.official_extract_thread = None
+ self.repair_thread = None
self.replace_font_thread = None
self.is_queue_task_empty = True
self.q = MyQueue()
@@ -119,6 +122,9 @@ def on_start_button_clicked(self):
if self.officialExtractionCheckBox.isChecked():
self.q.put(self.official_extract)
self.qDic[self.official_extract] = (False, False)
+ if self.errorRepairCheckBox.isChecked():
+ self.q.put(self.repair)
+ self.qDic[self.repair] = (False, False)
if self.extractionCheckBox.isChecked():
self.q.put(self.extract)
self.qDic[self.extract] = (False, False)
@@ -139,6 +145,16 @@ def on_start_button_clicked(self):
self.parent.showNormal()
self.parent.raise_()
+ def repair(self):
+ path = self.selectFileText.toPlainText()
+ path = path.replace('file:///', '')
+ if os.path.isfile(path):
+ if path.endswith('.exe'):
+ t = repairThread(path, int(self.maxRecursionLineEdit.text()))
+ self.repair_thread = t
+ t.start()
+ self.setDisabled(True)
+
def set_default_language(self):
tl_name = self.tlNameText.toPlainText()
target = self.get_set_default_language_target()
@@ -665,6 +681,13 @@ def update_progress(self):
is_finished = True
self.qDic[self.official_extract] = is_finished, is_executed
+ if self.repair_thread is not None:
+ if not self.repair_thread.is_alive():
+ self.repair_thread = None
+ is_finished, is_executed = self.qDic[self.repair]
+ is_finished = True
+ self.qDic[self.repair] = is_finished, is_executed
+
if self.replace_font_thread is not None:
if not self.replace_font_thread.is_alive():
self.replace_font_thread = None
diff --git a/src/qm/arabic.qm b/src/qm/arabic.qm
index c462ef8..e6ade2e 100644
Binary files a/src/qm/arabic.qm and b/src/qm/arabic.qm differ
diff --git a/src/qm/bengali.qm b/src/qm/bengali.qm
index c99dedf..fbace2e 100644
Binary files a/src/qm/bengali.qm and b/src/qm/bengali.qm differ
diff --git a/src/qm/chinese.qm b/src/qm/chinese.qm
index 95a5f66..d76bc4d 100644
Binary files a/src/qm/chinese.qm and b/src/qm/chinese.qm differ
diff --git a/src/qm/french.qm b/src/qm/french.qm
index 2b3ef07..987df1f 100644
Binary files a/src/qm/french.qm and b/src/qm/french.qm differ
diff --git a/src/qm/german.qm b/src/qm/german.qm
index 402ab7b..e476bd4 100644
Binary files a/src/qm/german.qm and b/src/qm/german.qm differ
diff --git a/src/qm/greek.qm b/src/qm/greek.qm
index 0b07f51..ae89222 100644
Binary files a/src/qm/greek.qm and b/src/qm/greek.qm differ
diff --git a/src/qm/hindi.qm b/src/qm/hindi.qm
index 461e9a1..d448426 100644
Binary files a/src/qm/hindi.qm and b/src/qm/hindi.qm differ
diff --git a/src/qm/japanese.qm b/src/qm/japanese.qm
index 6553630..afa5267 100644
Binary files a/src/qm/japanese.qm and b/src/qm/japanese.qm differ
diff --git a/src/qm/korean.qm b/src/qm/korean.qm
index 0d8dcf5..5d453eb 100644
Binary files a/src/qm/korean.qm and b/src/qm/korean.qm differ
diff --git a/src/qm/portuguese.qm b/src/qm/portuguese.qm
index f4bf9bc..6787d2d 100644
Binary files a/src/qm/portuguese.qm and b/src/qm/portuguese.qm differ
diff --git a/src/qm/russian.qm b/src/qm/russian.qm
index 5a16f55..9593f86 100644
Binary files a/src/qm/russian.qm and b/src/qm/russian.qm differ
diff --git a/src/qm/spanish.qm b/src/qm/spanish.qm
index fe9cee3..110b37d 100644
Binary files a/src/qm/spanish.qm and b/src/qm/spanish.qm differ
diff --git a/src/qm/turkish.qm b/src/qm/turkish.qm
index 1b584c8..e35e67a 100644
Binary files a/src/qm/turkish.qm and b/src/qm/turkish.qm differ
diff --git a/src/qm/urdu.qm b/src/qm/urdu.qm
index 88cca18..bc333bb 100644
Binary files a/src/qm/urdu.qm and b/src/qm/urdu.qm differ
diff --git a/src/renpy_extract.py b/src/renpy_extract.py
index 7c688af..0af2257 100644
--- a/src/renpy_extract.py
+++ b/src/renpy_extract.py
@@ -36,6 +36,13 @@ def run(self):
extracted = ExtractFromFile(self.p, False, 9999, False, self.is_py2)
else:
remove_repeat_for_file(self.p)
+ f = io.open(self.p, 'r', encoding='utf-8')
+ _lines = f.readlines()
+ f.close()
+ f = io.open(self.p, 'w', encoding='utf-8')
+ _lines = get_remove_consecutive_empty_lines(_lines)
+ f.writelines(_lines)
+ f.close()
extracted = None
get_extracted_lock.acquire()
get_extracted_set_list.append((self.p, extracted))
@@ -132,28 +139,6 @@ def remove_repeat_extracted_from_tl(tl_dir, is_py2):
f.close()
remove_repeat_for_file(p2)
i = i + 1
- cnt = 0
- get_extracted_set_list.clear()
- paths = os.walk(p, topdown=False)
- for path, dir_lst, file_lst in paths:
- for file_name in file_lst:
- i = os.path.join(path, file_name)
- if file_name.endswith("rpy") == False:
- continue
- t = ExtractTlThread(i, is_py2, True)
- get_extracted_threads.append(t)
- cnt = cnt + 1
- t.start()
- while True:
- threads_len = len(get_extracted_threads)
- if threads_len > 0:
- for t in get_extracted_threads:
- if t.is_alive():
- t.join()
- get_extracted_threads.remove(t)
- else:
- break
- get_extracted_set_list.clear()
def get_remove_consecutive_empty_lines(lines):
last_line_empty = False
@@ -572,3 +557,28 @@ def ExtractAllFilesInDir(dirName, is_open_filter, filter_length, is_gen_empty, i
WriteExtracted(dirName, set(), is_open_filter, filter_length, is_gen_empty, is_skip_underline, is_py2)
log_print('start removing repeated extraction, please waiting...')
remove_repeat_extracted_from_tl(dirName, is_py2)
+ cnt = 0
+ get_extracted_set_list.clear()
+ p = dirName
+ if p[len(p) - 1] != '/' and p[len(p) - 1] != '\\':
+ p = p + '/'
+ paths = os.walk(p, topdown=False)
+ for path, dir_lst, file_lst in paths:
+ for file_name in file_lst:
+ i = os.path.join(path, file_name)
+ if file_name.endswith("rpy") == False:
+ continue
+ t = ExtractTlThread(i, is_py2, True)
+ get_extracted_threads.append(t)
+ cnt = cnt + 1
+ t.start()
+ while True:
+ threads_len = len(get_extracted_threads)
+ if threads_len > 0:
+ for t in get_extracted_threads:
+ if t.is_alive():
+ t.join()
+ get_extracted_threads.remove(t)
+ else:
+ break
+ get_extracted_set_list.clear()
\ No newline at end of file
diff --git a/src/renpy_lint.py b/src/renpy_lint.py
new file mode 100644
index 0000000..aabf21d
--- /dev/null
+++ b/src/renpy_lint.py
@@ -0,0 +1,137 @@
+import io
+import os
+import subprocess
+
+from call_game_python import get_python_path_from_game_path, get_py_path
+from my_log import log_print
+
+lint_out_path = 'error_repair.txt'
+
+
+def get_renpy_cmd(game_path):
+ python_path = get_python_path_from_game_path(game_path)
+ py_path = get_py_path(game_path)
+ game_dir = os.path.dirname(game_path)
+
+ command = '"' + python_path + '"' + ' -O "' + py_path + '" "' + game_dir + '" lint ' + '"' + os.path.dirname(
+ game_path) + '/' + lint_out_path + '"'
+ return command
+
+
+def exec_renpy_lint(game_path):
+ command = get_renpy_cmd(game_path)
+ p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
+ creationflags=0x08000000, text=True, encoding='utf-8')
+ p.wait()
+ stdout, stderr = p.communicate()
+ return stdout, stderr
+
+
+def fix_translation_by_lint(game_path):
+ target = os.path.dirname(game_path) + '/' + lint_out_path
+ if os.path.isfile(target):
+ os.remove(target)
+ stdout, stderr = exec_renpy_lint(game_path)
+ log_print('renpy lint finish, start analyzing...')
+ if len(stderr) > 0:
+ log_print(f'call renpy lint error : {stderr}')
+ return False
+ lines = stdout.splitlines()
+ if os.path.isfile(target):
+ os.remove(target)
+ return False
+ is_fixed = False
+ fix_list = []
+ for line in lines:
+ err_file = ''
+ err_line = -1
+ if (line.endswith('is not terminated with a newline. (Check strings and parenthesis.)') or line.endswith(
+ 'end of line expected.')
+ or line.endswith('expects a non-empty block.') or line.endswith('unknown statement') or line.endswith(
+ 'expected statement.')):
+ idx = line.index(', line ')
+ err_file = line[line.index(' ') + 1:idx].strip('"')
+ err_line = line[idx + len(', line '): line.index(':', idx)].strip()
+ err_line = int(err_line) - 1
+ if line in fix_list:
+ continue
+ fix_list.append(line)
+ if line.startswith('Exception: A translation for '):
+ idx = line.rindex('already exists at ')
+ err_content = line[len('Exception: A translation for '):idx].rstrip()
+ idx = idx + len('already exists at ')
+ err_info = line[idx:].rstrip('.').lstrip()
+ err_file, err_line = err_info.split(':', 1)
+ err_line = int(err_line) + 1
+ if err_info in fix_list:
+ continue
+ fix_list.append(err_info)
+ if err_line == -1:
+ continue
+ err_file = os.path.dirname(game_path) + '/' + err_file
+ if not os.path.isfile(err_file):
+ log_print('error path : ' + err_file)
+ f = io.open(err_file, 'r', encoding='utf-8')
+ _lines = f.readlines()
+ f.close()
+ log_print(
+ 'remove error line ' + str(err_line) + ' in ' + err_file + ' : "' + _lines[err_line].rstrip('\n') + '"')
+ if _lines[err_line - 1].rstrip().endswith('""")'):
+ _idx = err_line
+ new_idx = -1
+ end_idx = -1
+ while True:
+ if _idx >= len(_lines):
+ break
+ if _lines[_idx].startswith(' new _p("""'):
+ new_idx = _idx
+ break
+ _idx = _idx - 1
+ if new_idx != -1:
+ _idx = new_idx - 1
+ while True:
+ if _idx >= len(_lines):
+ break
+ if _lines[_idx].startswith(' old _p("""'):
+ end_idx = _idx
+ break
+ _idx = _idx - 1
+ if end_idx != -1:
+ for _idx in range(end_idx, err_line + 1):
+ _lines[_idx] = '\n'
+
+ elif _lines[err_line].startswith(' old ') and _lines[err_line + 1].startswith(' new '):
+ _lines[err_line] = ''
+ _lines[err_line + 1] = ''
+ if _lines[err_line - 1].lstrip().startswith('#'):
+ _lines[err_line - 1] = ''
+ elif _lines[err_line].startswith(' new ') and _lines[err_line - 1].startswith(' old '):
+ _lines[err_line] = ''
+ _lines[err_line - 1] = ''
+ if _lines[err_line - 2].lstrip().startswith('#'):
+ _lines[err_line - 2] = ''
+ elif line.endswith('unknown statement') or line.endswith('expected statement.'):
+ _lines[err_line] = '\n'
+ else:
+ _lines[err_line] = ' ""\n'
+ f = io.open(err_file, 'w', encoding='utf-8')
+ f.writelines(_lines)
+ f.close()
+ is_fixed = True
+ return is_fixed
+
+
+def fix_translation_by_lint_recursion(game_path, max_recursion_depth):
+ command = get_renpy_cmd(game_path)
+ log_print(command)
+ cnt = 0
+ while True:
+ log_print('start reparing ' + str(cnt + 1) + '/' + str(max_recursion_depth))
+ if not fix_translation_by_lint(game_path):
+ log_print('no errors left, finish!')
+ break
+ cnt = cnt + 1
+ if cnt >= max_recursion_depth:
+ break
+
+# fix_translation_by_lint_recursion('F:/Games/RenPy/DemoGame-1.1-dists/DemoGame-1.1-win/DemoGame.exe')
diff --git a/src/ts/arabic.ts b/src/ts/arabic.ts
index f8059ea..a2b370f 100644
--- a/src/ts/arabic.ts
+++ b/src/ts/arabic.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
طريق
-
+
الوحدات
-
-
-
+
+
+
مترجم
-
-
-
-
-
-
+
+
+
+
+
+
تصدير إلى ملف HTML
-
-
+
+
استيراد HTML والمحتويات المترجمة النسبية
-
-
+
+
خط
-
-
+
+
يشير إلى
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
حاضِر
-
+
يزيل
-
+
الاستيراد إلى الملفات
-
+
هل تريد إجراء إعدادات متقدمة (الإعداد الافتراضي هو الاستيراد إلى كافة الملفات الموجودة في الدليل)
-
-
-
+
+
+
هل تريد استبدال الرموز الخاصة؟
-
-
+
+
هل تريد عمل إعدادات متقدمة (الإعداد الافتراضي هو تصدير جميع الملفات الموجودة في الدليل)
-
+
حساسية الموضوع
-
+
البحث في العمود المرجعي
-
+
البحث في العمود الأصلي
-
+
البحث في العمود الحالي
-
+
البحث في العمود المترجم
-
-
+
+
حوار الإدخال
-
+
الرجاء إدخال رقم السطر الذي تريد القفز عليه
-
+
الرجاء إدخال المحتوى الذي تريد البحث فيه
-
+
ترجمة مصدر الترجمة إلى مترجم
-
+
انسخ الأصل إلى الحالي
-
+
نسخة مترجمة إلى الحالية
-
+
التراجع الحالي إلى التحميل الأول
-
+
حدد الدليل الذي تريد تحريره
-
+
حدد الملف (الملفات) الذي تريد تحريره
-
-
-
-
-
-
+
+
+
+
+
+
تصدير إلى ملف XLSX
@@ -682,6 +682,35 @@
قالب موجه مخصص
+
+ ErrorRepairDialog
+
+
+
+ يتم اصلاح...
+
+
+
+
+
+ إصلاح الأخطاء
+
+
+
+
+ إصلاح الخطأ
+
+
+
+
+ ملف
+
+
+
+
+ الحد الأقصى لعدد الإصلاحات
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
حدد خط الملف الذي يدعم اللغة المترجمة
@@ -980,12 +1009,12 @@
FormatDialog
-
+
يتم التنسيق...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
حدد ملف اللعبة الذي تريد فك ضغطه
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
ملف html لا يتطابق مع الملف المترجم، يرجى التحقق من ملفات الإدخال
@@ -1249,46 +1278,46 @@
MainWindow
-
+
استخراج...
-
-
+
+
جار الترجمة...
-
-
+
+
انقر للتحقق من التحديث
-
+
إنه محدث الآن
-
+
تم اكتشاف نسخة جديدة
-
+
هل ترغب في فتح الموقع للحصول على أحدث إصدار؟
-
+
يترجم
-
+
يستخرج
@@ -1302,12 +1331,12 @@
حدد الدليل الذي تريد استخراجه
-
+
حدد الملف (الملفات) التي تريد ترجمتها
-
+
حدد الدليل الذي تريد ترجمته
@@ -1403,15 +1432,20 @@
تحديد موقع ملف السجل مع المستكشف
-
+
ضبط اللغة الافتراضية عند بدء التشغيل
-
+
تنسيق ملفات rpy
+
+
+
+ إصلاح الخطأ
+
@@ -1423,37 +1457,37 @@
إظهار ملف html المُصدَّر باستخدام المستكشف فقط
-
+
اِستِخلاص
-
+
استخراج وقت التشغيل
-
+
إضافة تغيير مدخل اللغة
-
+
ترجمة مفتاح واحد
-
+
الاستخراج الرسمي
-
+
تحويل النص إلى HTML
-
+
حزمة ملفات اللعبة
@@ -1481,7 +1515,7 @@
أدخل أو اختر أو اسحب الخط الذي يدعم اللغة بعد الترجمة. مثال: DejaVuSans.ttf (الخط الافتراضي لـren'py)
-
+
استبدال الخط
@@ -1544,8 +1578,8 @@
سجل نظيف
-
-
+
+
إصدار
@@ -1570,12 +1604,12 @@
خيارات متقدمة
-
+
سمة
-
+
فك حزمة اللعبة
@@ -1584,32 +1618,32 @@
محرر
-
+
لغة
-
+
حقوق النشر
-
+
إعدادات الوكيل
-
+
إعدادات المحرك
-
+
محرك مخصص
-
+
تحرير من rpy
@@ -1764,12 +1798,22 @@
ضبط اللغة الافتراضية عند بدء التشغيل
-
+
+
+ إصلاح الخطأ
+
+
+
+
+ الحد الأقصى لعدد الإصلاحات
+
+
+
حدد ملف اللعبة
-
+
اكتملت ترجمة مفتاح واحد
diff --git a/src/ts/bengali.ts b/src/ts/bengali.ts
index 580fae1..125a456 100644
--- a/src/ts/bengali.ts
+++ b/src/ts/bengali.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
পথ
-
+
ইউনিট
-
-
-
+
+
+
অনূদিত
-
-
-
-
-
-
+
+
+
+
+
+
html ফাইলে রপ্তানি করুন
-
-
+
+
html এবং আপেক্ষিক অনূদিত বিষয়বস্তু আমদানি করুন
-
-
+
+
লাইন
-
-
+
+
উল্লেখ করুন
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
কারেন্ট
-
+
অপসারণ
-
+
ফাইল আমদানি করুন
-
+
আপনি কি উন্নত সেটিংস করতে চান (ডিফল্ট সেটিং হল ডিরেক্টরির সমস্ত ফাইল আমদানি করা)
-
-
-
+
+
+
আপনি কি বিশেষ চিহ্ন প্রতিস্থাপন করতে চান?
-
-
+
+
আপনি কি উন্নত সেটিংস করতে চান (ডিফল্ট সেটিং হল ডিরেক্টরির সমস্ত ফাইল রপ্তানি করা)
-
+
কেস সংবেদনশীল
-
+
অনুসন্ধান করুন কলাম
-
+
আসল কলাম অনুসন্ধান করুন
-
+
বর্তমান কলাম অনুসন্ধান করুন
-
+
অনুবাদিত কলাম অনুসন্ধান করুন
-
-
+
+
ইনপুট ডায়ালগ
-
+
আপনি লাফ দিতে চান লাইন নম্বর ইনপুট করুন
-
+
আপনি অনুসন্ধান করতে চান বিষয়বস্তু ইনপুট করুন
-
+
অনুবাদ অনুবাদ উৎস অনুবাদ করা
-
+
কারেন্টে আসল কপি করুন
-
+
কপি বর্তমান অনুবাদ
-
+
রোলব্যাক বর্তমান প্রথম লোড
-
+
আপনি যে ডিরেক্টরিটি সম্পাদনা করতে চান তা নির্বাচন করুন
-
+
আপনি সম্পাদনা করতে চান ফাইল(গুলি) নির্বাচন করুন
-
-
-
-
-
-
+
+
+
+
+
+
xlsx ফাইলে রপ্তানি করুন
@@ -682,6 +682,35 @@
কাস্টম প্রম্পট টেমপ্লেট
+
+ ErrorRepairDialog
+
+
+
+ মেরামত করছে...
+
+
+
+
+
+ মেরামত ত্রুটি
+
+
+
+
+ ত্রুটি মেরামত
+
+
+
+
+ ফাইল
+
+
+
+
+ সর্বোচ্চ মেরামতের গণনা
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
ফাইল ফন্ট নির্বাচন করুন যা অনুবাদিত ভাষা সমর্থন করে
@@ -980,12 +1009,12 @@
FormatDialog
-
+
বিন্যাস হচ্ছে...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
আপনি যে গেম ফাইলটি আনপ্যাক করতে চান তা নির্বাচন করুন
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
html ফাইলটি অনূদিত ফাইলের সাথে মেলে না, অনুগ্রহ করে ইনপুট ফাইলগুলি পরীক্ষা করুন৷
@@ -1249,46 +1278,46 @@
MainWindow
-
+
নিষ্কাশন করা হচ্ছে...
-
-
+
+
অনুবাদ করা হচ্ছে...
-
-
+
+
আপডেট চেক করতে ক্লিক করুন
-
+
এটা এখন আপ টু ডেট
-
+
নতুন সংস্করণ সনাক্ত করা হয়েছে
-
+
আপনি কি সর্বশেষ সংস্করণ পেতে ওয়েবসাইট খুলতে চান?
-
+
অনুবাদ করা
-
+
নির্যাস
@@ -1302,12 +1331,12 @@
আপনি নিষ্কাশন করতে চান ডিরেক্টরি নির্বাচন করুন
-
+
আপনি যে ফাইলটি অনুবাদ করতে চান সেটি নির্বাচন করুন
-
+
আপনি যে ডিরেক্টরিটি অনুবাদ করতে চান তা নির্বাচন করুন
@@ -1317,8 +1346,8 @@
Ren'py অনুবাদক
-
-
+
+
সংস্করণ
@@ -1409,15 +1438,20 @@
এক্সপ্লোরারের সাথে লগ ফাইলটি সন্ধান করুন
-
+
স্টার্টআপে ডিফল্ট ভাষা সেট করুন
-
+
rpy ফাইল ফরম্যাট করুন
+
+
+
+ ত্রুটি মেরামত
+
@@ -1434,47 +1468,47 @@
উন্নত বিকল্প
-
+
থিম
-
+
গেম প্যাকেজ আনপ্যাক করুন
-
+
অনুবাদ নির্যাস
-
+
রানটাইম নিষ্কাশন
-
+
পরিবর্তন ভাষা প্রবেশদ্বার যোগ করুন
-
+
একটি মূল অনুবাদ
-
+
অফিসিয়াল নিষ্কাশন
-
+
txt কে html এ রূপান্তর করুন
-
+
@@ -1502,7 +1536,7 @@
ইনপুট বা চয়ন করুন বা ফন্ট যা অনুবাদের পরে ভাষা সমর্থন করে টেনে আনুন। উদাহরণ: DejaVuSans.ttf (ren'py এর ডিফল্ট ফন্ট)
-
+
ফন্ট প্রতিস্থাপন
@@ -1584,32 +1618,32 @@
সম্পাদক
-
+
ভাষা
-
+
কপিরাইট
-
+
প্রক্সি সেটিংস
-
+
ইঞ্জিন সেটিংস
-
+
কাস্টম ইঞ্জিন
-
+
rpy থেকে সম্পাদনা করুন
@@ -1764,12 +1798,22 @@
স্টার্টআপে ডিফল্ট ভাষা সেট করুন
-
+
+
+ ত্রুটি মেরামত
+
+
+
+
+ সর্বোচ্চ মেরামতের গণনা
+
+
+
গেম ফাইল নির্বাচন করুন
-
+
এক কী অনুবাদ সম্পূর্ণ
diff --git a/src/ts/chinese.ts b/src/ts/chinese.ts
index 17488df..f550e45 100644
--- a/src/ts/chinese.ts
+++ b/src/ts/chinese.ts
@@ -358,10 +358,10 @@
-
-
-
-
+
+
+
+
@@ -384,10 +384,10 @@
-
-
-
-
+
+
+
+
@@ -411,9 +411,9 @@
-
-
-
+
+
+
已翻译
@@ -425,155 +425,155 @@
-
+
单位
-
-
+
+
行
-
-
+
+
指向
-
+
路径
-
-
-
-
-
-
+
+
+
+
+
+
导出到 html 文件
-
-
+
+
导入html和相关翻译内容
-
+
移除
-
+
导入到文件
-
+
是否要进行高级设置(默认设置是导入到目录下的所有文件)
-
-
-
+
+
+
您想替换特殊符号吗?
-
-
+
+
是否要进行高级设置(默认设置是导出目录下的所有文件)
-
+
区分大小写
-
+
搜索 refer 列
-
+
搜索 Origina 列
-
+
搜索 Current 列
-
+
搜索 Translated 列
-
-
+
+
输入对话框
-
+
请输入您要跳转的行号
-
+
输入您要搜索的内容
-
+
将翻译源翻译到翻译后的内容
-
+
将原始内容复制到当前内容
-
+
复制翻译为当前
-
+
将 当前 回滚到刚加载时
-
+
选择要编辑的目录
-
+
选择您要编辑的文件
-
-
-
-
-
-
+
+
+
+
+
+
导出到 xlsx 文件
@@ -682,6 +682,35 @@
自定义提示模板
+
+ ErrorRepairDialog
+
+
+
+ 正在修复……
+
+
+
+
+
+ 修复错误
+
+
+
+
+ 错误修复
+
+
+
+
+ 文件
+
+
+
+
+ 最大修复次数
+
+
ExportSettingDialog
@@ -971,7 +1000,7 @@
-
+
选择支持翻译语言的文件字体
@@ -984,12 +1013,12 @@
FormatDialog
-
+
正在格式化...
-
+
@@ -1020,7 +1049,7 @@
GameUnpackerDialog
-
+
选择你要解压的游戏文件
@@ -1108,9 +1137,9 @@
ImportHtmlDialog
-
-
-
+
+
+
html文件与翻译的文件不匹配,请检查输入文件
@@ -1258,40 +1287,40 @@
Ren'py 翻译器
-
+
抽取中...
-
-
+
+
翻译中...
-
-
+
+
点击检查更新
-
+
现在是最新的
-
+
检测到新版本
-
+
您是否愿意打开网站获取最新版本?
-
+
翻译
@@ -1305,12 +1334,12 @@
选择你要解压的目录
-
+
选择您要翻译的文件
-
+
选择要翻译的目录
@@ -1406,15 +1435,20 @@
使用资源管理器查找日志文件
-
+
设置启动时的默认语言
-
+
格式化 rpy 文件
+
+
+
+ 错误修复
+
@@ -1426,37 +1460,37 @@
仅使用资源管理器显示导出的 html 文件
-
+
提取翻译
-
+
运行时提取
-
+
添加更改语言入口
-
+
一键翻译
-
+
官方提取
-
+
将 txt 转换为 html
-
+
打包游戏文件
@@ -1471,7 +1505,7 @@
高级选项
-
+
解压游戏包
@@ -1488,7 +1522,7 @@
输入或选择或拖动支持翻译后语言的字体。示例:DejaVuSans.ttf(ren'py 的默认字体)
-
+
替换字体
@@ -1517,7 +1551,7 @@
在此处输入或选择或拖动要翻译的目录。示例:F:\GameName\game\tl\language
-
+
抽取
@@ -1562,8 +1596,8 @@
清空日志
-
-
+
+
版本
@@ -1587,37 +1621,37 @@
编辑器
-
+
语言
-
+
主题
-
+
版权
-
+
代理设置
-
+
引擎设置
-
+
自定义引擎
-
+
从 rpy 编辑
@@ -1772,12 +1806,22 @@
设置启动时的默认语言
-
+
+
+ 错误修复
+
+
+
+
+ 最大修复次数
+
+
+
选择游戏文件
-
+
一键翻译完成
diff --git a/src/ts/default.ts b/src/ts/default.ts
index 5b6158f..77c4c0e 100644
--- a/src/ts/default.ts
+++ b/src/ts/default.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
-
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -682,6 +682,35 @@
+
+ ErrorRepairDialog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ExportSettingDialog
@@ -891,7 +920,7 @@
-
+
@@ -957,12 +986,12 @@
FormatDialog
-
+
-
+
@@ -993,7 +1022,7 @@
GameUnpackerDialog
-
+
@@ -1069,9 +1098,9 @@
ImportHtmlDialog
-
-
-
+
+
+
@@ -1194,57 +1223,57 @@
MainWindow
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1254,8 +1283,8 @@
-
-
+
+
@@ -1351,15 +1380,20 @@
-
+
-
+
+
+
+
+
+
@@ -1376,47 +1410,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1436,7 +1470,7 @@
-
+
@@ -1461,32 +1495,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1641,12 +1675,22 @@
-
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/src/ts/french.ts b/src/ts/french.ts
index 450b111..8d66fa6 100644
--- a/src/ts/french.ts
+++ b/src/ts/french.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
Chemin
-
+
Unités
-
-
-
+
+
+
Traduit
-
-
-
-
-
-
+
+
+
+
+
+
Exporter vers un fichier HTML
-
-
+
+
Importer du HTML et du contenu traduit relatif
-
-
+
+
doubler
-
-
+
+
référer
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
Actuel
-
+
Retirer
-
+
Importer dans des fichiers
-
+
Voulez-vous définir des paramètres avancés (le paramètre par défaut est d'importer dans tous les fichiers du répertoire)
-
-
-
+
+
+
Voulez-vous remplacer des symboles spéciaux ?
-
-
+
+
Voulez-vous effectuer des réglages avancés (le réglage par défaut est d'exporter tous les fichiers du répertoire)
-
+
Sensible aux majuscules et minuscules
-
+
Rechercher dans la colonne de référence
-
+
Rechercher la colonne d'origine
-
+
Rechercher dans la colonne actuelle
-
+
Colonne Rechercher traduite
-
-
+
+
Boîte de dialogue de saisie
-
+
Veuillez saisir le numéro de ligne que vous souhaitez sauter
-
+
Veuillez saisir le contenu que vous souhaitez rechercher
-
+
Traduire la source de traduction en traduit
-
+
Copier l'original vers le courant
-
+
Copie traduite en version actuelle
-
+
Retourner le courant à la première charge
-
+
sélectionnez le répertoire que vous souhaitez modifier
-
+
sélectionnez le(s) fichier(s) que vous souhaitez modifier
-
-
-
-
-
-
+
+
+
+
+
+
Exporter vers un fichier xlsx
@@ -682,6 +682,35 @@
Modèle d'invite personnalisé
+
+ ErrorRepairDialog
+
+
+
+ est en train de réparer...
+
+
+
+
+
+ réparer les erreurs
+
+
+
+
+ Réparation d'erreur
+
+
+
+
+ déposer
+
+
+
+
+ nombre maximal de réparations
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
sélectionnez la police du fichier qui prend en charge la langue traduite
@@ -980,12 +1009,12 @@
FormatDialog
-
+
c'est le formatage...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
sélectionnez le fichier du jeu que vous souhaitez décompresser
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
Le fichier HTML ne correspond pas au fichier traduit, veuillez vérifier les fichiers d'entrée
@@ -1249,46 +1278,46 @@
MainWindow
-
+
extraire...
-
-
+
+
Traduction en cours...
-
-
+
+
Cliquez pour vérifier la mise à jour
-
+
C'est à jour maintenant
-
+
Nouvelle version détectée
-
+
Souhaitez-vous ouvrir le site Web pour obtenir la dernière version ?
-
+
traduire
-
+
extrait
@@ -1302,12 +1331,12 @@
sélectionnez le répertoire que vous souhaitez extraire
-
+
sélectionnez le(s) fichier(s) que vous souhaitez traduire
-
+
sélectionnez le répertoire que vous souhaitez traduire
@@ -1403,15 +1432,20 @@
localiser le fichier journal avec l'explorateur
-
+
définir la langue par défaut au démarrage
-
+
formater les fichiers rpy
+
+
+
+ réparation d'erreur
+
@@ -1428,47 +1462,47 @@
options avancées
-
+
thème
-
+
déballer le paquet de jeu
-
+
extrait de traduction
-
+
Extraction de l'environnement d'exécution
-
+
ajouter changer la langue de l'entrée
-
+
une clé traduire
-
+
Extraction officielle
-
+
convertir txt en html
-
+
emballer les fichiers du jeu
@@ -1496,7 +1530,7 @@
saisissez ou choisissez ou faites glisser la police qui prend en charge la langue après la traduction. Exemple : DejaVuSans.ttf (police par défaut de ren'py)
-
+
remplacer la police
@@ -1559,8 +1593,8 @@
effacer le journal
-
-
+
+
Version
@@ -1584,32 +1618,32 @@
éditeur
-
+
langue
-
+
droits d'auteur
-
+
paramètres du proxy
-
+
réglages du moteur
-
+
moteur personnalisé
-
+
modifier depuis rpy
@@ -1764,12 +1798,22 @@
définir la langue par défaut au démarrage
-
+
+
+ Réparation d'erreur
+
+
+
+
+ nombre maximal de réparations
+
+
+
sélectionnez le fichier du jeu
-
+
Une traduction clé terminée
diff --git a/src/ts/german.ts b/src/ts/german.ts
index ec4c343..4817511 100644
--- a/src/ts/german.ts
+++ b/src/ts/german.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
Weg
-
+
Einheiten
-
-
-
+
+
+
Übersetzt
-
-
-
-
-
-
+
+
+
+
+
+
In eine HTML-Datei exportieren
-
-
+
+
Importieren Sie HTML und relativ übersetzte Inhalte
-
-
+
+
Linie
-
-
+
+
verweisen
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
Aktuell
-
+
Entfernen
-
+
In Dateien importieren
-
+
Möchten Sie erweiterte Einstellungen vornehmen (die Standardeinstellung ist der Import in alle Dateien im Verzeichnis)
-
-
-
+
+
+
Möchten Sie Sonderzeichen ersetzen?
-
-
+
+
Möchten Sie erweiterte Einstellungen vornehmen (Standardeinstellung ist der Export aller Dateien im Verzeichnis)
-
+
Groß- und Kleinschreibung beachten
-
+
Referenzspalte durchsuchen
-
+
Originalspalte durchsuchen
-
+
Aktuelle Spalte durchsuchen
-
+
Durchsuchen Sie die Spalte „Übersetzt“
-
-
+
+
Eingabedialog
-
+
Bitte geben Sie die Zeilennummer ein, zu der Sie springen möchten
-
+
Bitte geben Sie den Inhalt ein, nach dem Sie suchen möchten
-
+
Übersetzen Sie die Übersetzungsquelle in „Übersetzt“
-
+
Original auf Aktuelle kopieren
-
+
In „Aktuell“ übersetzt kopieren
-
+
Rollback-Strom zum ersten Laden
-
+
Wählen Sie das Verzeichnis aus, das Sie bearbeiten möchten
-
+
Wählen Sie die Datei(en) aus, die Sie bearbeiten möchten
-
-
-
-
-
-
+
+
+
+
+
+
In eine XLSX-Datei exportieren
@@ -682,6 +682,35 @@
Benutzerdefinierte Eingabeaufforderungsvorlage
+
+ ErrorRepairDialog
+
+
+
+ ist reparieren...
+
+
+
+
+
+ Fehler reparieren
+
+
+
+
+ Fehlerbehebung
+
+
+
+
+ Datei
+
+
+
+
+ Maximale Anzahl Reparaturen
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
Wählen Sie die Dateischriftart aus, die die übersetzte Sprache unterstützt
@@ -980,12 +1009,12 @@
FormatDialog
-
+
formatiert...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
Wählen Sie die Spieldatei aus, die Sie entpacken möchten
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
Die HTML-Datei stimmt nicht mit der übersetzten Datei überein. Bitte überprüfen Sie die Eingabedateien
@@ -1229,57 +1258,57 @@
MainWindow
-
+
extrahieren...
-
-
+
+
übersetzen...
-
-
+
+
Klicken Sie hier, um nach Updates zu suchen
-
+
Es ist jetzt auf dem neuesten Stand
-
+
Neue Version erkannt
-
+
Möchten Sie die Website öffnen, um die neueste Version zu erhalten?
-
+
übersetzen
-
+
Extrakt
-
+
Wählen Sie die Datei(en) aus, die Sie übersetzen möchten
-
+
Wählen Sie das Verzeichnis aus, das Sie übersetzen möchten
@@ -1289,8 +1318,8 @@
Ren'py-Übersetzer
-
-
+
+
Ausführung
@@ -1386,15 +1415,20 @@
Logdatei mit Explorer suchen
-
+
Standardsprache beim Start festlegen
-
+
rpy-Dateien formatieren
+
+
+
+ Fehlerbehebung
+
@@ -1411,47 +1445,47 @@
erweiterte Optionen
-
+
Thema
-
+
Spielpaket auspacken
-
+
Übersetzung extrahieren
-
+
Laufzeitextraktion
-
+
Spracheingabe hinzufügen
-
+
eine Schlüsselübersetzung
-
+
Offizielle Extraktion
-
+
txt in html konvertieren
-
+
Spieldateien packen
@@ -1471,7 +1505,7 @@
©2024 Last Moment, Alle Rechte vorbehalten.
-
+
Schriftart ersetzen
@@ -1496,32 +1530,32 @@
Übersetzungsmaschine
-
+
Sprache
-
+
Urheberrechte ©
-
+
Proxy-Einstellungen
-
+
Motoreinstellungen
-
+
benutzerdefinierte Engine
-
+
Bearbeiten von rpy
@@ -1676,12 +1710,22 @@
Standardsprache beim Start festlegen
-
+
+
+ Fehlerbehebung
+
+
+
+
+ Maximale Anzahl Reparaturen
+
+
+
Wählen Sie die Spieldatei aus
-
+
One-Key-Übersetzung abgeschlossen
diff --git a/src/ts/greek.ts b/src/ts/greek.ts
index 39d185e..6d5abc5 100644
--- a/src/ts/greek.ts
+++ b/src/ts/greek.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
Μονοπάτι
-
+
Μονάδες
-
-
-
+
+
+
Μεταφρασμένο
-
-
-
-
-
-
+
+
+
+
+
+
Εξαγωγή σε αρχείο html
-
-
+
+
Εισαγωγή html και σχετικού μεταφρασμένου περιεχομένου
-
-
+
+
γραμμή
-
-
+
+
αναφέρομαι
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
Ρεύμα
-
+
Αφαιρώ
-
+
Εισαγωγή σε αρχεία
-
+
Θέλετε να κάνετε σύνθετες ρυθμίσεις (η προεπιλεγμένη ρύθμιση είναι η εισαγωγή σε όλα τα αρχεία στον κατάλογο)
-
-
-
+
+
+
Θέλετε να αντικαταστήσετε ειδικά σύμβολα;
-
-
+
+
Θέλετε να κάνετε σύνθετες ρυθμίσεις (η προεπιλεγμένη ρύθμιση είναι η εξαγωγή όλων των αρχείων στον κατάλογο)
-
+
Case Sensitive
-
+
Στήλη αναφοράς αναζήτησης
-
+
Αναζήτηση αρχικής στήλης
-
+
Αναζήτηση τρέχουσας στήλης
-
+
Μεταφρασμένη στήλη αναζήτησης
-
-
+
+
Διάλογος εισαγωγής
-
+
Εισαγάγετε τον αριθμό γραμμής που θέλετε να μεταβείτε
-
+
Εισαγάγετε το περιεχόμενο που θέλετε να αναζητήσετε
-
+
Μεταφράστε την πηγή μετάφρασης σε μεταφρασμένη
-
+
Αντιγράψτε το πρωτότυπο στο τρέχον
-
+
Αντιγραφή Μεταφράστηκε σε Τρέχον
-
+
Ρεύμα επαναφοράς στο πρώτο φορτίο
-
+
επιλέξτε τον κατάλογο που θέλετε να επεξεργαστείτε
-
+
επιλέξτε τα αρχεία που θέλετε να επεξεργαστείτε
-
-
-
-
-
-
+
+
+
+
+
+
Εξαγωγή σε αρχείο xlsx
@@ -682,6 +682,35 @@
Προσαρμοσμένο πρότυπο προτροπής
+
+ ErrorRepairDialog
+
+
+
+ επισκευάζει...
+
+
+
+
+
+ επισκευή σφαλμάτων
+
+
+
+
+ Επιδιόρθωση σφάλματος
+
+
+
+
+ αρχείο
+
+
+
+
+ μέγιστος αριθμός επισκευών
+
+
ExportSettingDialog
@@ -891,7 +920,7 @@
-
+
επιλέξτε τη γραμματοσειρά του αρχείου που υποστηρίζει τη μεταφρασμένη γλώσσα
@@ -957,12 +986,12 @@
FormatDialog
-
+
μορφοποιείται...
-
+
@@ -993,7 +1022,7 @@
GameUnpackerDialog
-
+
επιλέξτε το αρχείο παιχνιδιού που θέλετε να αποσυσκευάσετε
@@ -1069,9 +1098,9 @@
ImportHtmlDialog
-
-
-
+
+
+
Το αρχείο html δεν ταιριάζει με το μεταφρασμένο αρχείο, ελέγξτε τα αρχεία εισόδου
@@ -1194,57 +1223,57 @@
MainWindow
-
+
εξάγει...
-
-
+
+
μεταφράζει...
-
-
+
+
Κάντε κλικ για να ελέγξετε για ενημέρωση
-
+
Είναι ενημερωμένο τώρα
-
+
Εντοπίστηκε νέα έκδοση
-
+
Θέλετε να ανοίξετε τον ιστότοπο για να λάβετε την πιο πρόσφατη έκδοση;
-
+
μεταφράζω
-
+
εκχύλισμα
-
+
επιλέξτε τα αρχεία που θέλετε να μεταφράσετε
-
+
επιλέξτε τον κατάλογο που θέλετε να μεταφράσετε
@@ -1254,8 +1283,8 @@
Μεταφραστής Ren'py
-
-
+
+
Εκδοχή
@@ -1351,15 +1380,20 @@
εντοπίστε το αρχείο καταγραφής με τον εξερευνητή
-
+
ορίστε την προεπιλεγμένη γλώσσα κατά την εκκίνηση
-
+
μορφή αρχείων rpy
+
+
+
+ Επιδιόρθωση σφάλματος
+
@@ -1376,47 +1410,47 @@
προχωρημένες επιλογές
-
+
θέμα
-
+
αποσυσκευάστε το πακέτο παιχνιδιού
-
+
απόσπασμα μετάφρασης
-
+
εξαγωγή χρόνου εκτέλεσης
-
+
προσθήκη αλλαγής γλώσσας εισόδου
-
+
μετάφραση ενός κλειδιού
-
+
επίσημη εξαγωγή
-
+
μετατροπή txt σε html
-
+
συσκευάστε αρχεία παιχνιδιών
@@ -1436,7 +1470,7 @@
©2024 Τελευταία στιγμή, Με την επιφύλαξη παντός δικαιώματος.
-
+
αντικαταστήστε τη γραμματοσειρά
@@ -1461,32 +1495,32 @@
μηχανή μετάφρασης
-
+
Γλώσσα
-
+
πνευματική ιδιοκτησία
-
+
ρυθμίσεις διακομιστή μεσολάβησης
-
+
ρυθμίσεις κινητήρα
-
+
προσαρμοσμένη μηχανή
-
+
επεξεργασία από rpy
@@ -1641,12 +1675,22 @@
ορίστε την προεπιλεγμένη γλώσσα κατά την εκκίνηση
-
+
+
+ Επιδιόρθωση σφάλματος
+
+
+
+
+ μέγιστος αριθμός επισκευών
+
+
+
επιλέξτε το αρχείο του παιχνιδιού
-
+
Ολοκληρώθηκε η μετάφραση ενός κλειδιού
diff --git a/src/ts/hindi.ts b/src/ts/hindi.ts
index f1031f7..a6b50c6 100644
--- a/src/ts/hindi.ts
+++ b/src/ts/hindi.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
पथ
-
+
इकाइयों
-
-
-
+
+
+
अनुवाद
-
-
-
-
-
-
+
+
+
+
+
+
HTML फ़ाइल में निर्यात करें
-
-
+
+
HTML और सापेक्ष अनुवादित सामग्री आयात करें
-
-
+
+
रेखा
-
-
+
+
संदर्भ देना
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
मौजूदा
-
+
निकालना
-
+
फ़ाइलों में आयात करें
-
+
क्या आप उन्नत सेटिंग्स बनाना चाहते हैं (डिफ़ॉल्ट सेटिंग निर्देशिका में सभी फ़ाइलों को आयात करना है)
-
-
-
+
+
+
क्या आप विशेष प्रतीकों को बदलना चाहते हैं?
-
-
+
+
क्या आप उन्नत सेटिंग करना चाहते हैं (डिफ़ॉल्ट सेटिंग निर्देशिका में सभी फ़ाइलों को निर्यात करना है)
-
+
अक्षर संवेदनशील
-
+
संदर्भ स्तंभ खोजें
-
+
मूल कॉलम खोजें
-
+
वर्तमान कॉलम खोजें
-
+
अनुवादित कॉलम खोजें
-
-
+
+
इनपुट संवाद
-
+
कृपया वह लाइन नंबर इनपुट करें जिसे आप जंप करना चाहते हैं
-
+
कृपया वह सामग्री इनपुट करें जिसे आप खोजना चाहते हैं
-
+
अनुवाद स्रोत का अनुवाद अनुवादित में करें
-
+
मूल को वर्तमान में कॉपी करें
-
+
वर्तमान में अनुवादित प्रतिलिपि
-
+
रोलबैक करंट को पहले लोड पर
-
+
वह निर्देशिका चुनें जिसे आप संपादित करना चाहते हैं
-
+
वह फ़ाइल चुनें जिसे आप संपादित करना चाहते हैं
-
-
-
-
-
-
+
+
+
+
+
+
xlsx फ़ाइल में निर्यात करें
@@ -682,6 +682,35 @@
कस्टम प्रॉम्प्ट टेम्पलेट
+
+ ErrorRepairDialog
+
+
+
+ मरम्मत कर रहा है...
+
+
+
+
+
+ त्रुटियों की मरम्मत
+
+
+
+
+ त्रुटि सुधार
+
+
+
+
+ फ़ाइल
+
+
+
+
+ अधिकतम मरम्मत गिनती
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
उस फ़ाइल फ़ॉन्ट का चयन करें जो अनुवादित भाषा का समर्थन करता है
@@ -980,12 +1009,12 @@
FormatDialog
-
+
स्वरूपण है...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
वह गेम फ़ाइल चुनें जिसे आप अनपैक करना चाहते हैं
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
HTML फ़ाइल अनुवादित फ़ाइल से मेल नहीं खाती, कृपया इनपुट फ़ाइलों की जाँच करें
@@ -1249,46 +1278,46 @@
MainWindow
-
+
निकाल रहा हूँ...
-
-
+
+
अनुवाद कर रहा हूँ...
-
-
+
+
अपडेट देखने के लिए क्लिक करें
-
+
यह अब अद्यतित है
-
+
नया संस्करण पाया गया
-
+
क्या आप नवीनतम संस्करण प्राप्त करने के लिए वेबसाइट खोलना चाहेंगे?
-
+
अनुवाद
-
+
निकालना
@@ -1302,12 +1331,12 @@
वह निर्देशिका चुनें जिसे आप निकालना चाहते हैं
-
+
वह फ़ाइल चुनें जिसका आप अनुवाद करना चाहते हैं
-
+
वह निर्देशिका चुनें जिसका आप अनुवाद करना चाहते हैं
@@ -1317,8 +1346,8 @@
रेन्पी अनुवादक
-
-
+
+
संस्करण
@@ -1409,15 +1438,20 @@
एक्सप्लोरर के साथ लॉग फ़ाइल का पता लगाएं
-
+
स्टार्टअप पर डिफ़ॉल्ट भाषा सेट करें
-
+
rpy फ़ाइलों को प्रारूपित करें
+
+
+
+ त्रुटि सुधार
+
@@ -1434,47 +1468,47 @@
उन्नत विकल्प
-
+
विषय
-
+
गेम पैकेज को अनपैक करें
-
+
अनुवाद निकालें
-
+
रनटाइम निष्कर्षण
-
+
परिवर्तन भाषा प्रवेश द्वार जोड़ें
-
+
एक कुंजी अनुवाद
-
+
आधिकारिक निष्कर्षण
-
+
txt को html में बदलें
-
+
गेम फ़ाइलें पैक करें
@@ -1502,7 +1536,7 @@
अनुवाद के बाद भाषा का समर्थन करने वाले फ़ॉन्ट को इनपुट करें या चुनें या खींचें। उदाहरण: DejaVuSans.ttf (ren'py का डिफ़ॉल्ट फ़ॉन्ट)
-
+
फ़ॉन्ट बदलें
@@ -1584,32 +1618,32 @@
संपादक
-
+
भाषा
-
+
कॉपीराइट
-
+
प्रॉक्सी सेटिंग
-
+
इंजन सेटिंग्स
-
+
कस्टम इंजन
-
+
rpy से संपादित करें
@@ -1764,12 +1798,22 @@
स्टार्टअप पर डिफ़ॉल्ट भाषा सेट करें
-
+
+
+ त्रुटि सुधार
+
+
+
+
+ अधिकतम मरम्मत गिनती
+
+
+
गेम फ़ाइल का चयन करें
-
+
एक कुंजी अनुवाद पूर्ण
diff --git a/src/ts/japanese.ts b/src/ts/japanese.ts
index 59b8ed6..c95e5e3 100644
--- a/src/ts/japanese.ts
+++ b/src/ts/japanese.ts
@@ -358,10 +358,10 @@
-
-
-
-
+
+
+
+
@@ -384,10 +384,10 @@
-
-
-
-
+
+
+
+
@@ -411,9 +411,9 @@
-
-
-
+
+
+
翻訳済み
@@ -425,155 +425,155 @@
-
+
パス
-
+
単位
-
-
-
-
-
-
+
+
+
+
+
+
HTMLファイルにエクスポート
-
-
+
+
HTML および相対的に翻訳されたコンテンツをインポートする
-
-
+
+
行
-
-
+
+
参照する
-
+
取り除く
-
+
ファイルにインポート
-
+
詳細設定を行いますか (デフォルト設定では、ディレクトリ内のすべてのファイルをインポートします)
-
-
-
+
+
+
特殊な記号を置き換えますか?
-
-
+
+
詳細設定を行いますか (デフォルト設定では、ディレクトリ内のすべてのファイルをエクスポートします)
-
+
検索したい内容を入力してください
-
+
refer 列を検索
-
+
Original 列を検索
-
+
Current 列を検索
-
+
Translated 列を検索
-
-
+
+
入力ダイアログ
-
+
ジャンプしたい行番号を入力してください
-
+
検索したい内容を入力してください
-
+
翻訳ソースを翻訳済みに翻訳
-
+
オリジナルを現在にコピー
-
+
現在に翻訳されたコピー
-
+
現在 をロードしたばかりの状態にロールバックします
-
+
編集したいディレクトリを選択します
-
+
編集したいファイルを選択します
-
-
-
-
-
-
+
+
+
+
+
+
xlsxファイルにエクスポート
@@ -682,6 +682,35 @@
カスタムプロンプトテンプレート
+
+ ErrorRepairDialog
+
+
+
+ 修復中です...
+
+
+
+
+
+ エラーを修復する
+
+
+
+
+ エラー修復
+
+
+
+
+ ファイル
+
+
+
+
+ 最大修復回数
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
翻訳された言語をサポートするファイルフォントを選択します
@@ -980,12 +1009,12 @@
FormatDialog
-
+
フォーマット中です...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
解凍したいゲームファイルを選択します
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
HTML ファイルが翻訳されたファイルと一致しません。入力ファイルを確認してください
@@ -1254,40 +1283,40 @@
レンピー翻訳者
-
+
抽出中...
-
-
+
+
翻訳中...
-
-
+
+
クリックして更新を確認してください
-
+
今は最新です
-
+
新しいバージョンが検出されました
-
+
最新バージョンを取得するためにWebサイトを開きますか?
-
+
翻訳する
@@ -1301,12 +1330,12 @@
抽出したいディレクトリを選択します
-
+
翻訳したいファイルを選択します
-
+
翻訳したいディレクトリを選択します
@@ -1402,15 +1431,20 @@
エクスプローラーでログファイルを見つける
-
+
起動時にデフォルトの言語を設定する
-
+
rpy ファイルをフォーマットする
+
+
+
+ エラー修復
+
@@ -1422,37 +1456,37 @@
エクスポートされた HTML ファイルをエクスプローラーのみで表示する
-
+
翻訳を抜粋
-
+
ランタイム抽出
-
+
言語変更の入り口を追加
-
+
ワンキー翻訳
-
+
公式抽出
-
+
txtをhtmlに変換する
-
+
ゲームファイルをパックする
@@ -1467,7 +1501,7 @@
高度なオプション
-
+
ゲームパッケージを解凍する
@@ -1480,7 +1514,7 @@
翻訳後の言語をサポートするフォントを入力または選択またはドラッグします。例: DejaVuSans.ttf (ren'py のデフォルトのフォント)
-
+
フォントを置き換える
@@ -1509,7 +1543,7 @@
ここに翻訳したいディレクトリを入力または選択またはドラッグします。例:F:\GameName\game\tl\language
-
+
抽出する
@@ -1554,8 +1588,8 @@
ログをクリアする
-
-
+
+
バージョン
@@ -1579,37 +1613,37 @@
編集者
-
+
言語
-
+
テーマ
-
+
著作権
-
+
プロキシ設定
-
+
エンジン設定
-
+
カスタムエンジン
-
+
rpyから編集する
@@ -1764,12 +1798,22 @@
起動時にデフォルトの言語を設定する
-
+
+
+ エラー修復
+
+
+
+
+ 最大修復回数
+
+
+
ゲームファイルを選択します
-
+
ワンキー翻訳完了
diff --git a/src/ts/korean.ts b/src/ts/korean.ts
index 7d2a974..2ed8735 100644
--- a/src/ts/korean.ts
+++ b/src/ts/korean.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
길
-
+
단위
-
-
-
+
+
+
번역됨
-
-
-
-
-
-
+
+
+
+
+
+
HTML 파일로 내보내기
-
-
+
+
HTML 및 상대 번역된 콘텐츠 가져오기
-
-
+
+
선
-
-
+
+
나타내다
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
현재의
-
+
제거하다
-
+
파일로 가져오기
-
+
고급 설정을 하시겠습니까(기본 설정은 디렉터리의 모든 파일을 가져오는 것입니다)
-
-
-
+
+
+
특수 기호를 바꾸시겠습니까?
-
-
+
+
고급 설정을 하시겠습니까(기본 설정은 디렉터리의 모든 파일을 내보내는 것입니다)
-
+
대소문자 구분
-
+
검색 참조 항목
-
+
원본 열 검색
-
+
현재 열 검색
-
+
번역된 열 검색
-
-
+
+
입력 대화 상자
-
+
점프하고 싶은 라인 번호를 입력해주세요
-
+
검색하고 싶은 내용을 입력해주세요
-
+
번역 소스를 번역으로 번역
-
+
원본을 현재로 복사
-
+
현재로 번역된 사본
-
+
전류를 첫 번째 부하로 롤백
-
+
편집하려는 디렉토리를 선택하십시오
-
+
편집하고 싶은 파일을 선택하세요
-
-
-
-
-
-
+
+
+
+
+
+
xlsx 파일로 내보내기
@@ -682,6 +682,35 @@
사용자 정의 프롬프트 템플릿
+
+ ErrorRepairDialog
+
+
+
+ 수리 중입니다...
+
+
+
+
+
+ 오류를 복구하다
+
+
+
+
+ 오류 복구
+
+
+
+
+ 파일
+
+
+
+
+ 최대 수리 횟수
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
번역된 언어를 지원하는 파일 글꼴을 선택하세요
@@ -980,12 +1009,12 @@
FormatDialog
-
+
포맷 중입니다...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
압축을 풀고 싶은 게임 파일을 선택하세요
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
HTML 파일이 번역된 파일과 일치하지 않습니다. 입력 파일을 확인하세요
@@ -1229,57 +1258,57 @@
MainWindow
-
+
적출...
-
-
+
+
번역하는 중...
-
-
+
+
업데이트를 확인하려면 클릭하세요
-
+
지금은 최신 상태입니다
-
+
새 버전이 감지되었습니다
-
+
최신 버전을 다운로드하기 위해 웹사이트를 여시겠습니까?
-
+
번역하다
-
+
발췌
-
+
번역하려는 파일을 선택하세요
-
+
번역하려는 디렉토리를 선택하십시오
@@ -1289,8 +1318,8 @@
렌피 번역기
-
-
+
+
버전
@@ -1386,15 +1415,20 @@
탐색기로 로그 파일 찾기
-
+
시작 시 기본 언어 설정
-
+
rpy 파일 형식 지정
+
+
+
+ 오류 복구
+
@@ -1411,47 +1445,47 @@
고급 옵션
-
+
주제
-
+
게임 패키지 풀기
-
+
번역 추출
-
+
런타임 추출
-
+
언어 변경 입구 추가
-
+
하나의 키 번역
-
+
공식 추출
-
+
txt를 html로 변환
-
+
게임 파일 압축
@@ -1471,7 +1505,7 @@
©2024 마지막 순간, 모든 권리 보유.
-
+
글꼴 교체
@@ -1496,32 +1530,32 @@
번역 엔진
-
+
언어
-
+
저작권
-
+
프록시 설정
-
+
엔진 설정
-
+
커스텀 엔진
-
+
rpy에서 편집
@@ -1676,12 +1710,22 @@
시작 시 기본 언어 설정
-
+
+
+ 오류 복구
+
+
+
+
+ 최대 수리 횟수
+
+
+
게임 파일을 선택하세요
-
+
하나의 키 번역 완료
diff --git a/src/ts/portuguese.ts b/src/ts/portuguese.ts
index 0947b07..90280a8 100644
--- a/src/ts/portuguese.ts
+++ b/src/ts/portuguese.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
Caminho
-
+
Unidades
-
-
-
+
+
+
Traduzido
-
-
-
-
-
-
+
+
+
+
+
+
Exportar para arquivo HTML
-
-
+
+
Importe HTML e conteúdos relativos traduzidos
-
-
+
+
linha
-
-
+
+
referir
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
Atual
-
+
Remover
-
+
Importar para arquivos
-
+
Você deseja fazer configurações avançadas (a configuração padrão é importar para todos os arquivos do diretório)
-
-
-
+
+
+
Você deseja substituir símbolos especiais?
-
-
+
+
Você deseja fazer configurações avançadas (a configuração padrão é exportar todos os arquivos do diretório)
-
+
Maiúsculas e minúsculas
-
+
Coluna de referência de pesquisa
-
+
Pesquisar coluna original
-
+
Pesquisar coluna atual
-
+
Pesquisar coluna traduzida
-
-
+
+
Caixa de diálogo de entrada
-
+
Por favor, insira o número da linha que você deseja pular
-
+
Por favor, insira o conteúdo que deseja pesquisar
-
+
Traduzir fonte de tradução para traduzido
-
+
Copiar original para atual
-
+
Copiar traduzido para atual
-
+
Reverter a corrente para a primeira carga
-
+
selecione o diretório que deseja editar
-
+
selecione o(s) arquivo(s) que deseja editar
-
-
-
-
-
-
+
+
+
+
+
+
Exportar para arquivo xlsx
@@ -682,6 +682,35 @@
Modelo de prompt personalizado
+
+ ErrorRepairDialog
+
+
+
+ está a reparar...
+
+
+
+
+
+ erros de reparação
+
+
+
+
+ Reparação de erros
+
+
+
+
+ arquivo
+
+
+
+
+ contagem de reparação máxima
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
selecione a fonte do arquivo que suporta o idioma traduzido
@@ -980,12 +1009,12 @@
FormatDialog
-
+
está a formatar...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
selecione o arquivo do jogo que deseja descompactar
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
O arquivo html não corresponde ao arquivo traduzido, verifique os arquivos de entrada
@@ -1249,46 +1278,46 @@
MainWindow
-
+
extraindo...
-
-
+
+
traduzindo...
-
-
+
+
Clique para verificar se há atualização
-
+
Está atualizado agora
-
+
Nova versão detectada
-
+
Gostaria de abrir o site para obter a versão mais recente?
-
+
traduzir
-
+
extrair
@@ -1302,12 +1331,12 @@
selecione o diretório que deseja extrair
-
+
selecione o(s) arquivo(s) que deseja traduzir
-
+
selecione o diretório que deseja traduzir
@@ -1317,8 +1346,8 @@
Tradutor Ren'py
-
-
+
+
Versão
@@ -1419,15 +1448,20 @@
localize o arquivo de log com o explorer
-
+
definir o idioma predefinido no arranque
-
+
formatar ficheiros rpy
+
+
+
+ Reparação de erros
+
@@ -1439,37 +1473,37 @@
Mostrar arquivo html exportado apenas com o Explorer
-
+
extrair tradução
-
+
Extração de tempo de execução
-
+
Adicionar entrada para alteração de idioma
-
+
uma chave traduz
-
+
Extração Oficial
-
+
converter txt para html
-
+
empacotar arquivos do jogo
@@ -1484,7 +1518,7 @@
opções avançadas
-
+
descompacte o pacote do jogo
@@ -1497,7 +1531,7 @@
insira ou escolha ou arraste a fonte que suporta o idioma após a tradução. Exemplo: DejaVuSans.ttf (fonte padrão de ren'py)
-
+
substituir fonte
@@ -1579,37 +1613,37 @@
editor
-
+
linguagem
-
+
tema
-
+
direito autoral
-
+
configurações de proxy
-
+
configurações do motor
-
+
mecanismo personalizado
-
+
editar do rpy
@@ -1764,12 +1798,22 @@
definir o idioma predefinido no arranque
-
+
+
+ Reparação de erros
+
+
+
+
+ contagem de reparação máxima
+
+
+
selecione o arquivo do jogo
-
+
Tradução completa de uma chave
diff --git a/src/ts/russian.ts b/src/ts/russian.ts
index 5eaf069..4cfaaa3 100644
--- a/src/ts/russian.ts
+++ b/src/ts/russian.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
Путь
-
+
Единицы
-
-
-
+
+
+
Переведено
-
-
-
-
-
-
+
+
+
+
+
+
Экспортировать в html-файл
-
-
+
+
Импортируйте HTML и относительный переведенный контент
-
-
+
+
линия
-
-
+
+
ссылаться
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
Текущий
-
+
Удалять
-
+
Импортировать в файлы
-
+
Хотите выполнить расширенные настройки (настройка по умолчанию — импорт во все файлы в каталоге)
-
-
-
+
+
+
Хотите заменить специальные символы?
-
-
+
+
Хотите ли вы выполнить расширенные настройки (настройка по умолчанию — экспортировать все файлы в каталоге)
-
+
С учетом регистра
-
+
Поиск в столбце ссылки
-
+
Исходный столбец поиска
-
+
Поиск в текущем столбце
-
+
Поиск Переведенный столбец
-
-
+
+
Диалог ввода
-
+
Пожалуйста, введите номер строки, на которую вы хотите перейти.
-
+
Пожалуйста, введите контент, который вы хотите найти
-
+
Перевести исходный код перевода в переведенный
-
+
Копировать оригинал в текущий
-
+
Копия переведена в текущий
-
+
Ток отката до первой нагрузки
-
+
выберите каталог, который вы хотите редактировать
-
+
выберите файл(ы), которые вы хотите отредактировать
-
-
-
-
-
-
+
+
+
+
+
+
Экспортировать в файл xlsx
@@ -682,6 +682,35 @@
Пользовательский шаблон подсказки
+
+ ErrorRepairDialog
+
+
+
+ ремонтируется...
+
+
+
+
+
+ исправление ошибок
+
+
+
+
+ Исправление ошибок
+
+
+
+
+ файл
+
+
+
+
+ максимальное количество ремонтов
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
выберите шрифт файла, который поддерживает переведенный язык
@@ -980,12 +1009,12 @@
FormatDialog
-
+
форматирует...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
выберите файл игры, который хотите распаковать
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
HTML-файл не соответствует переведенному файлу, проверьте входные файлы
@@ -1249,46 +1278,46 @@
MainWindow
-
+
извлечение...
-
-
+
+
Идет перевод...
-
-
+
+
Нажмите, чтобы проверить наличие обновлений
-
+
Это актуально сейчас
-
+
Обнаружена новая версия
-
+
Хотите открыть веб-сайт и получить последнюю версию?
-
+
переводить
-
+
извлекать
@@ -1302,12 +1331,12 @@
выберите каталог, который вы хотите извлечь
-
+
выберите файл(ы), которые вы хотите перевести
-
+
выберите каталог, который вы хотите перевести
@@ -1317,8 +1346,8 @@
Ренпи Переводчик
-
-
+
+
Версия
@@ -1409,15 +1438,20 @@
найти файл журнала с помощью проводника
-
+
установить язык по умолчанию при запуске
-
+
форматировать файлы rpy
+
+
+
+ Исправление ошибок
+
@@ -1434,47 +1468,47 @@
Расширенные опции
-
+
тема
-
+
распаковать пакет игры
-
+
извлечь перевод
-
+
Извлечение во время выполнения
-
+
Добавить вход на смену языка
-
+
один ключ, перевод
-
+
Официальное извлечение
-
+
конвертировать txt в html
-
+
упаковать файлы игры
@@ -1502,7 +1536,7 @@
введите или выберите или перетащите шрифт, который поддерживает язык после перевода. Пример: DejaVuSans.ttf (шрифт ren'py по умолчанию)
-
+
заменить шрифт
@@ -1584,32 +1618,32 @@
редактор
-
+
язык
-
+
Авторские права
-
+
настройки прокси
-
+
настройки двигателя
-
+
специальный движок
-
+
редактировать из rpy
@@ -1764,12 +1798,22 @@
установить язык по умолчанию при запуске
-
+
+
+ Исправление ошибок
+
+
+
+
+ максимальное количество ремонтов
+
+
+
выберите файл игры
-
+
One Key Translate завершен
diff --git a/src/ts/spanish.ts b/src/ts/spanish.ts
index 4b0e9a3..7820c49 100644
--- a/src/ts/spanish.ts
+++ b/src/ts/spanish.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
Camino
-
+
Unidades
-
-
-
+
+
+
Traducido
-
-
-
-
-
-
+
+
+
+
+
+
Exportar a archivo html
-
-
+
+
Importar html y contenidos traducidos relativos
-
-
+
+
línea
-
-
+
+
referirse
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
Actual
-
+
Eliminar
-
+
Importar a archivos
-
+
¿Desea realizar configuraciones avanzadas (la configuración predeterminada es importar a todos los archivos en el directorio)
-
-
-
+
+
+
¿Quieres reemplazar símbolos especiales?
-
-
+
+
¿Quiere realizar configuraciones avanzadas (la configuración predeterminada es exportar todos los archivos en el directorio)?
-
+
Distingue mayúsculas y minúsculas
-
+
Buscar columna de referencia
-
+
Buscar columna original
-
+
Buscar columna actual
-
+
Buscar columna traducida
-
-
+
+
Diálogo de entrada
-
+
Ingrese el número de línea que desea saltar
-
+
Por favor ingrese el contenido que desea buscar
-
+
Traducir la fuente de traducción a traducida
-
+
Copiar original a actual
-
+
Copiar traducido al actual
-
+
Revertir la corriente a la primera carga
-
+
seleccione el directorio que desea editar
-
+
seleccione el archivo(s) que desea editar
-
-
-
-
-
-
+
+
+
+
+
+
Exportar a archivo xlsx
@@ -682,6 +682,35 @@
Plantilla de aviso personalizada
+
+ ErrorRepairDialog
+
+
+
+ esta reparando...
+
+
+
+
+
+ reparar errores
+
+
+
+
+ Reparación de errores
+
+
+
+
+ archivo
+
+
+
+
+ recuento máximo de reparaciones
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
seleccione la fuente del archivo que admita el idioma traducido
@@ -980,12 +1009,12 @@
FormatDialog
-
+
está formateando...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
selecciona el archivo del juego que deseas descomprimir
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
El archivo html no coincide con el archivo traducido, verifique los archivos de entrada
@@ -1249,46 +1278,46 @@
MainWindow
-
+
extrayendo...
-
-
+
+
traductorio...
-
-
+
+
Haga clic para buscar actualizaciones
-
+
Está actualizado ahora
-
+
Nueva versión detectada
-
+
¿Le gustaría abrir el sitio web para obtener la última versión?
-
+
traducir
-
+
extracto
@@ -1302,12 +1331,12 @@
seleccione el directorio que desea extraer
-
+
seleccione el archivo(s) que desea traducir
-
+
seleccione el directorio que desea traducir
@@ -1317,8 +1346,8 @@
Traductor Ren'py
-
-
+
+
Versión
@@ -1419,15 +1448,20 @@
localizar el archivo de registro con el explorador
-
+
establecer el idioma predeterminado al inicio
-
+
formatear archivos rpy
+
+
+
+ Reparación de errores
+
@@ -1439,37 +1473,37 @@
Mostrar el archivo html exportado solo con el explorador
-
+
extraer traducción
-
+
Extracción en tiempo de ejecución
-
+
Agregar entrada para cambiar idioma
-
+
una clave traducir
-
+
Extracción Oficial
-
+
convertir texto a html
-
+
empaquetar archivos del juego
@@ -1484,7 +1518,7 @@
opciones avanzadas
-
+
desempaquetar el paquete del juego
@@ -1497,7 +1531,7 @@
ingrese o elija o arrastre la fuente que admite el idioma después de la traducción. Ejemplo: DejaVuSans.ttf (fuente predeterminada de ren'py)
-
+
reemplazar fuente
@@ -1579,37 +1613,37 @@
editor
-
+
idioma
-
+
tema
-
+
derechos de autor
-
+
configuración de proxy
-
+
configuración del motor
-
+
motor personalizado
-
+
editar desde rpy
@@ -1768,12 +1802,22 @@
establecer el idioma predeterminado al inicio
-
+
+
+ Reparación de errores
+
+
+
+
+ recuento máximo de reparaciones
+
+
+
selecciona el archivo del juego
-
+
Traducción completa con una tecla
diff --git a/src/ts/turkish.ts b/src/ts/turkish.ts
index 9d3acb1..f34aecc 100644
--- a/src/ts/turkish.ts
+++ b/src/ts/turkish.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
Path
-
+
Birimler
-
-
-
+
+
+
Çevrilmiş
-
-
-
-
-
-
+
+
+
+
+
+
Bir HTML Dosyasına Aktar
-
-
+
+
html ve göreceli çevrilmiş içerikleri içe aktar
-
-
+
+
çizgi
-
-
+
+
bahset
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
Geçerli
-
+
Kaldır
-
+
Dosyalara aktar
-
+
Gelişmiş ayarlar yapmak istiyor musunuz (varsayılan ayar dizindeki tüm dosyaları dışa aktarmaktır)
-
-
-
+
+
+
Özel sembolleri değiştirmek istiyor musunuz?
-
-
+
+
Gelişmiş ayarlar yapmak istiyor musunuz (varsayılan ayar dizindeki tüm dosyaları dışa aktarmaktır)
-
+
Büyük Küçük Harfe Duyarlı
-
+
Yönlendirme sütununu ara
-
+
Orijinal sütunu ara
-
+
Geçerli sütunu ara
-
+
Çevrilmiş sütunda ara
-
-
+
+
Giriş Penceresi
-
+
Lütfen gitmek istediğiniz satır numarasını girin
-
+
Lütfen aramak istediğiniz içeriği girin
-
+
Çeviri Kaynağını Çevrilmişe Çevir
-
+
Orijinali Geçerli Olana Kopyala
-
+
Geçerliye Çevrilen Kopyala
-
+
İlk yüklemeye geri al
-
+
düzenlemek istediğiniz dizini seçin
-
+
düzenlemek istediğiniz dosya(ları) seçin
-
-
-
-
-
-
+
+
+
+
+
+
Xlsx dosyasına aktar
@@ -682,6 +682,35 @@
Özel Bilgi İstemi Şablonu
+
+ ErrorRepairDialog
+
+
+
+ onarılıyor...
+
+
+
+
+
+ hataları onar
+
+
+
+
+ Hata Onarımı
+
+
+
+
+ dosya
+
+
+
+
+ maksimum onarım sayısı
+
+
ExportSettingDialog
@@ -891,7 +920,7 @@
-
+
çevrilmiş dili destekleyen dosya yazı tipini seçin
@@ -957,12 +986,12 @@
FormatDialog
-
+
biçimleniyor...
-
+
@@ -993,7 +1022,7 @@
GameUnpackerDialog
-
+
açmak istediğiniz oyun dosyasını seçin
@@ -1081,9 +1110,9 @@
ImportHtmlDialog
-
-
-
+
+
+
Html dosyası çevrilen dosyayla eşleşmiyor, lütfen dosyaları kontrol edin
@@ -1206,57 +1235,57 @@
MainWindow
-
+
çıkartılıyor...
-
-
+
+
Çevriliyor...
-
-
+
+
Güncellemeyi kontrol etmek için tıklayın
-
+
Artık güncel
-
+
Yeni sürüm algılandı
-
+
En son sürümü almak için web sitesini açmak ister misiniz?
-
+
Çevir
-
+
çıkar
-
+
çevirmek istediğiniz dosya(lar)ı seçin
-
+
çevirmek istediğiniz dizini seçin
@@ -1266,8 +1295,8 @@
Ren'py Çevirici
-
-
+
+
Sürüm
@@ -1363,15 +1392,20 @@
explorer ile günlük dosyasını bulun
-
+
başlangıçta varsayılan dili ayarla
-
+
rpy dosyalarını biçimlendir
+
+
+
+ Hata Onarımı
+
@@ -1388,47 +1422,47 @@
gelişmiş ayarlar
-
+
tema
-
+
oyun paketini aç
-
+
çeviriyi çıkar
-
+
çalışma zamanı çıkarma
-
+
değişim dili girişi ekle
-
+
bir anahtar çeviri
-
+
resmi çıkarma
-
+
txt'yi html'ye dönüştür
-
+
oyun dosyalarını paketle
@@ -1448,7 +1482,7 @@
©2024 Son an,Tüm hakları saklıdır.
-
+
yazı tipini değiştir
@@ -1473,32 +1507,32 @@
çeviri motoru
-
+
dil
-
+
telif hakkı
-
+
vekil sunucu ayarları
-
+
motor ayarları
-
+
özel motor
-
+
rpy'dan düzenle
@@ -1653,12 +1687,22 @@
başlangıçta varsayılan dili ayarla
-
+
+
+ Hata Onarımı
+
+
+
+
+ maksimum onarım sayısı
+
+
+
Dosyayı seçin
-
+
Tek Tuşla Çeviri Tamamlandı
diff --git a/src/ts/urdu.ts b/src/ts/urdu.ts
index 77f1800..2f2beb3 100644
--- a/src/ts/urdu.ts
+++ b/src/ts/urdu.ts
@@ -272,64 +272,64 @@
EditorDialog
-
+
راستہ
-
+
یونٹس
-
-
-
+
+
+
ترجمہ شدہ
-
-
-
-
-
-
+
+
+
+
+
+
html فائل میں ایکسپورٹ کریں۔
-
-
+
+
HTML اور متعلقہ ترجمہ شدہ مواد درآمد کریں۔
-
-
+
+
لائن
-
-
+
+
رجوع کریں
-
-
-
-
+
+
+
+
@@ -337,122 +337,122 @@
-
-
-
-
+
+
+
+
کرنٹ
-
+
دور
-
+
فائلوں میں درآمد کریں۔
-
+
کیا آپ ایڈوانس سیٹنگز بنانا چاہتے ہیں (ڈیفالٹ سیٹنگ ڈائرکٹری میں موجود تمام فائلوں کو امپورٹ کرنا ہے)
-
-
-
+
+
+
کیا آپ خصوصی علامتوں کو تبدیل کرنا چاہتے ہیں؟
-
-
+
+
کیا آپ ایڈوانس سیٹنگز بنانا چاہتے ہیں (ڈیفالٹ سیٹنگ ڈائرکٹری میں موجود تمام فائلوں کو ایکسپورٹ کرنا ہے)
-
+
حساس کیس
-
+
حوالہ کالم تلاش کریں۔
-
+
اصل کالم تلاش کریں۔
-
+
موجودہ کالم تلاش کریں۔
-
+
ترجمہ شدہ کالم تلاش کریں۔
-
-
+
+
ان پٹ ڈائیلاگ
-
+
براہ کرم وہ لائن نمبر درج کریں جو آپ کودنا چاہتے ہیں۔
-
+
براہ کرم وہ مواد درج کریں جسے آپ تلاش کرنا چاہتے ہیں۔
-
+
ترجمہ ترجمہ ماخذ کو ترجمہ شدہ سے ترجمہ کریں۔
-
+
اصل کو موجودہ میں کاپی کریں۔
-
+
موجودہ میں ترجمہ شدہ کاپی کریں۔
-
+
پہلے لوڈ پر کرنٹ کو رول بیک کریں۔
-
+
وہ ڈائریکٹری منتخب کریں جس میں آپ ترمیم کرنا چاہتے ہیں۔
-
+
وہ فائل منتخب کریں جس میں آپ ترمیم کرنا چاہتے ہیں۔
-
-
-
-
-
-
+
+
+
+
+
+
xlsx فائل میں برآمد کریں۔
@@ -682,6 +682,35 @@
کسٹم پرامپٹ ٹیمپلیٹ
+
+ ErrorRepairDialog
+
+
+
+ مرمت کر رہا ہے...
+
+
+
+
+
+ مرمت کی غلطیاں
+
+
+
+
+ خرابی کی مرمت
+
+
+
+
+ فائل
+
+
+
+
+ زیادہ سے زیادہ مرمت کی گنتی
+
+
ExportSettingDialog
@@ -914,7 +943,7 @@
-
+
فائل کا فونٹ منتخب کریں جو ترجمہ شدہ زبان کو سپورٹ کرتا ہے۔
@@ -980,12 +1009,12 @@
FormatDialog
-
+
فارمیٹنگ کر رہا ہے...
-
+
@@ -1016,7 +1045,7 @@
GameUnpackerDialog
-
+
وہ گیم فائل منتخب کریں جسے آپ پیک کھولنا چاہتے ہیں۔
@@ -1104,9 +1133,9 @@
ImportHtmlDialog
-
-
-
+
+
+
html فائل ترجمہ شدہ فائل سے مماثل نہیں ہے، براہ کرم ان پٹ فائلوں کو چیک کریں۔
@@ -1249,46 +1278,46 @@
MainWindow
-
+
نکال رہا ہے...
-
-
+
+
ترجمہ...
-
-
+
+
اپ ڈیٹ چیک کرنے کے لیے کلک کریں۔
-
+
یہ اب اپ ٹو ڈیٹ ہے۔
-
+
نئے ورژن کا پتہ چلا
-
+
کیا آپ تازہ ترین ورژن حاصل کرنے کے لیے ویب سائٹ کھولنا چاہیں گے؟
-
+
ترجمہ
-
+
نکالنا
@@ -1302,12 +1331,12 @@
وہ ڈائریکٹری منتخب کریں جسے آپ نکالنا چاہتے ہیں۔
-
+
وہ فائل (فائلیں) منتخب کریں جس کا آپ ترجمہ کرنا چاہتے ہیں۔
-
+
وہ ڈائریکٹری منتخب کریں جس کا آپ ترجمہ کرنا چاہتے ہیں۔
@@ -1317,8 +1346,8 @@
Ren'py مترجم
-
-
+
+
ورژن
@@ -1409,15 +1438,20 @@
ایکسپلورر کے ساتھ لاگ فائل کا پتہ لگائیں۔
-
+
شروع میں پہلے سے طے شدہ زبان سیٹ کریں۔
-
+
rpy فائلوں کو فارمیٹ کریں۔
+
+
+
+ خرابی کی مرمت
+
@@ -1434,47 +1468,47 @@
اعلی درجے کے اختیارات
-
+
خیالیہ
-
+
گیم پیکج کھولیں۔
-
+
ترجمہ نکالیں۔
-
+
رن ٹائم نکالنا
-
+
تبدیلی کی زبان کا داخلہ شامل کریں۔
-
+
ایک اہم ترجمہ
-
+
سرکاری نکالنا
-
+
txt کو html میں تبدیل کریں۔
-
+
گیم فائلوں کو پیک کریں۔
@@ -1502,7 +1536,7 @@
ترجمہ کے بعد زبان کو سپورٹ کرنے والا فونٹ داخل کریں یا منتخب کریں یا گھسیٹیں۔ مثال: DejaVuSans.ttf (ren'py کا ڈیفالٹ فونٹ)
-
+
فونٹ تبدیل کریں
@@ -1584,32 +1618,32 @@
ایڈیٹر
-
+
زبان
-
+
کاپی رائٹ
-
+
پراکسی ترتیبات
-
+
انجن کی ترتیبات
-
+
اپنی مرضی کے انجن
-
+
rpy سے ترمیم کریں۔
@@ -1764,12 +1798,22 @@
شروع میں پہلے سے طے شدہ زبان سیٹ کریں۔
-
+
+
+ خرابی کی مرمت
+
+
+
+
+ زیادہ سے زیادہ مرمت کی گنتی
+
+
+
گیم فائل کو منتخب کریں۔
-
+
ایک کلیدی ترجمہ مکمل
diff --git a/src/ui.py b/src/ui.py
index f152cae..2ccebae 100644
--- a/src/ui.py
+++ b/src/ui.py
@@ -161,6 +161,8 @@ def setupUi(self, MainWindow):
self.actiondefault_language_at_startup.setObjectName(u"actiondefault_language_at_startup")
self.actionformat_rpy_files = QAction(MainWindow)
self.actionformat_rpy_files.setObjectName(u"actionformat_rpy_files")
+ self.actionerror_repair = QAction(MainWindow)
+ self.actionerror_repair.setObjectName(u"actionerror_repair")
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.gridLayout = QGridLayout(self.centralwidget)
@@ -319,7 +321,7 @@ def setupUi(self, MainWindow):
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName(u"menubar")
- self.menubar.setGeometry(QRect(0, 0, 1068, 21))
+ self.menubar.setGeometry(QRect(0, 0, 1068, 22))
self.aboutMenu = QMenu(self.menubar)
self.aboutMenu.setObjectName(u"aboutMenu")
self.proxyMenu = QMenu(self.menubar)
@@ -354,6 +356,7 @@ def setupUi(self, MainWindow):
self.advancedMenu.addAction(self.actionadd_change_langauge_entrance)
self.advancedMenu.addAction(self.actiondefault_language_at_startup)
self.advancedMenu.addSeparator()
+ self.advancedMenu.addAction(self.actionerror_repair)
self.advancedMenu.addAction(self.actionpack_game_files)
self.advancedMenu.addAction(self.actionconvert_txt_to_html)
self.advancedMenu.addAction(self.actionformat_rpy_files)
@@ -416,6 +419,7 @@ def retranslateUi(self, MainWindow):
self.actionpack_game_files.setText(QCoreApplication.translate("MainWindow", u"pack game files", None))
self.actiondefault_language_at_startup.setText(QCoreApplication.translate("MainWindow", u"set default language at startup", None))
self.actionformat_rpy_files.setText(QCoreApplication.translate("MainWindow", u"format rpy files", None))
+ self.actionerror_repair.setText(QCoreApplication.translate("MainWindow", u"error repair", None))
self.translateBtn.setText(QCoreApplication.translate("MainWindow", u"translate", None))
self.selectFilesBtn.setText(QCoreApplication.translate("MainWindow", u"...", None))
self.label_2.setText(QCoreApplication.translate("MainWindow", u"directory", None))
diff --git a/src/ui.ui b/src/ui.ui
index e38dffb..4db79f7 100644
--- a/src/ui.ui
+++ b/src/ui.ui
@@ -537,7 +537,7 @@
0
0
1068
- 21
+ 22