我有一个游戏的本地化文件,不幸的是,这个文件包含所有本地化语言,但我只需要其中的匈牙利语文本。
我想制作一个关于这个游戏的视频系列,真正值得庆幸的是,这个游戏是翻译的,但我不能使用这种格式的文本,我需要帮助,因为我可以从我的 txt 中删除所有内容,除了匈牙利语文本。
关键的东西在我的文件上,每个“,”字符后都是下一种语言,例如:
"KEY","西班牙语","英语","德语","法语","意大利语","俄语","葡萄牙语","日语","捷克语","中文","匈牙利语","土耳其语","波兰语","乌克兰语","拉丁语" "01_01_01_01_01","Toma. Te toca。","Here. It's your turn。","Hier. Du bist dran。","Voilà. C'est ton tour。","Ecco. Tocca a te。","Держи. Теперь твоя очередь。","Toma. É a sua vez。","はい。君の番だよ。","Tady. Jsi na řadě。","来吧。轮到你了。","Tessék, te jössz。","Al, Sıra sende。","Masz. Twoja kolej。","Тримай。Твоя черга。","Toma。Te toca。"
"01_01_01_03_01","求你了,帮我一下。","请把我从这里带出去。","但是请你把我放在这里。","因为我在这里,所以我请你原谅。","你的家人知道我,我怀孕了。","你愿意,帮我一下。","我愿意,帮我一下。","求你了,带我出去吧。","自由的,请你原谅!","我不想要你,我爱你","求你了,我爱你站。”,“维吉尼亚我明白了,但我仍然相信。”,“来到这里,谢谢你。”
如果你经过计算,我的语言(匈牙利语)位于逗号 11 之后。这也许有助于编写一个好的正则表达式来过滤掉匈牙利字符串。
答案1
我猜你还需要文件中的“KEY”列才能使它正常工作。这应该输入在代替按下之前的对话框全部替换:
Find what: ^("[^"]+)(","[^"]+){10}(","[^"]+").*
Replace with: \1\3
请记住,仅当任何字段中都没有“”字符时,此方法才会起作用。
答案2
使用单个文件编辑器程序制作起来太复杂了。如果你想这样做,你需要一个 mysql 数据库,你需要重命名文件,file.csv
然后导入到数据库。现在如果你很幸运,你可以运行这个命令,你会没事的:
SELECT `COLLUMNAME` FROM `TABLENAME` INTO OUTFILE 'forditas.txt';
如果您不是,就像我的情况一样,因为此命令在 dreamhost 服务器上被禁用,您可以按照以下说明进行操作:
- 导入数据库后,由于存在拉丁 2 个字符,因此需要确保字符集编码设置为 utf-8。
之后,您需要创建一个 php 文件,例如
translate.php
,然后在其中粘贴以下内容:<html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Blues and bullets episode 1</title> <script src="//code.jquery.com/jquery-1.11.3.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css"> <meta charset="UTF-8"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script> $(document).ready(function() { $(".text-center p:first").remove(); $("textarea").val($(".text-center p").text()+"<br>"); }); </script> </head> <body> <style> body{ background:#eee; } p{ font-weight:bold; } </style> <div class="container"> <div class="text-center"> <textarea></textarea> <h1 class="jumbatron">Blues and Bullets magyar szöveg Episode 1</h1><br> <?php $servername = "MYSQLHOST usarly localhost";//Change this! $username = "DATABASE USERNAME";//Change this! $password = "PASSWORD";//Change this! // Create connection $conn = new mysqli($servername, $username, $password); $conn->set_charset("utf8"); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT `COLLUM` FROM `DATABASENAME`.`TABLE 1`";//Chanche this! $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { $string =$row["COLLUM"];//Change this! $string = preg_replace('/([a-z])([A-Z])/', "\\1\n\\2", $string); echo "<p>".$string."</p>"; } } else { echo "0 results"; } $conn->close(); ?><br> </div> </div>
下一步是,您需要更改此文件中的某些行。我对您需要更改的所有内容都做了注释,但我在这里突出显示了以下行:第一件事是数据库连接:
$servername = "MYSQLHOST usarly localhost";//Change this! $username = "DATABASE USERNAME";//Change this! $password = "PASSWORD";//Change this!
请填写正确的数据。
之后我们有这一行:$sql = "SELECT `COLLUM` FROM `DATABASENAME`.`TABLE 1`";//Chanche this!
我们需要给出列号、数据库名称和表名称。所以我们基本上要更改“`”字符内的所有内容。最后一件事。我们需要回显此内容,因此您需要更改此行:
$string =$row["COLLUM"];//Change this!
将文本更改
COLLUM
为 collum 真实姓名。