Issue Xin hỗ trợ về việt hóa file .bytes

Thảo luận trong 'Tut - Tool hướng dẫn dịch game' bắt đầu bởi 0boynhangheo0, 8/11/19.

  1. 0boynhangheo0

    0boynhangheo0 Thành viên mới

    9
    1
    3
    8/11/19
    Việt Nam
    Cụ thể là em đang gặp vướng mắc trong quá trình xử lí text việt hóa. Các text đều nằm trong các file .bytes của unity. Em có mở bằng HxD nhưng nếu sửa thành tiếng việt có dấu là sẽ bị lỗi game. Vậy có cách hoặc hướng đi nào giúp việt hóa được các text ở trong này không ạ.
     
  2. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    89
    44
    18
    16/8/18
    Nam
    TP.HCM
    Chụp hình header của file khi mở = Hxd giúp mình.
     
  3. 0boynhangheo0

    0boynhangheo0 Thành viên mới

    9
    1
    3
    8/11/19
    Việt Nam
    Đây ạ.
    [​IMG]
     
  4. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    89
    44
    18
    16/8/18
    Nam
    TP.HCM
    Up file lên đây, mình xem thử.
     
  5. 0boynhangheo0

    0boynhangheo0 Thành viên mới

    9
    1
    3
    8/11/19
    Việt Nam
    File ngôn ngữ:
    Tải file
    Cần thiết thì toàn bộ file game đây ạ:
    Tải file
     
  6. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    89
    44
    18
    16/8/18
    Nam
    TP.HCM
    Tùy game mà sẽ có những format khác nhau. Đây là tool do mình viết, chưa có tính năng import.

    p.s: Bên AowVN đang có dự án này, bạn có thể liên hệ thử nếu muốn dịch.
     

    Các file đính kèm:

  7. 0boynhangheo0

    0boynhangheo0 Thành viên mới

    9
    1
    3
    8/11/19
    Việt Nam
    Cảm ơn anh ạ.
     
    _Cloud_ thích bài này.
  8. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    89
    44
    18
    16/8/18
    Nam
    TP.HCM
    Đã thêm import. :=D:=D
     

    Các file đính kèm:

    0boynhangheo0 thích bài này.
  9. 0boynhangheo0

    0boynhangheo0 Thành viên mới

    9
    1
    3
    8/11/19
    Việt Nam
    Hay quá. Cho em hỏi thêm là anh viết tool bằng ngôn ngữ gì vậy ạ. angel~~
     
  10. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    89
    44
    18
    16/8/18
    Nam
    TP.HCM
    Cái này mình viết bằng C#, thật ra những tool này có thể được viết bởi nhiều ngôn ngữ khác. Nó chỉ là phương tiện của mình thôi, quan trọng là tư duy lập trình.
     
  11. 0boynhangheo0

    0boynhangheo0 Thành viên mới

    9
    1
    3
    8/11/19
    Việt Nam
    Anh cho em xin source tham khảo đc không?
     
  12. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    89
    44
    18
    16/8/18
    Nam
    TP.HCM
    Được, nhưng trước tiên em phải nắm được format file này đã.
     
  13. 0boynhangheo0

    0boynhangheo0 Thành viên mới

    9
    1
    3
    8/11/19
    Việt Nam
    Em soi bằng HxD thì thấy mỗi text nó cách nhau 4 hex tăng dần bắt đầu từ 01 00 00 00. Không biết còn thêm gì nữa không ạ?
     
  14. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    89
    44
    18
    16/8/18
    Nam
    TP.HCM
    Size text, những đoạn text ngắn < 128 ký tự thì chỉ dùng 1 byte, lớn hơn nó sẽ dùng 2 byte. Tính được cái này là sẽ biết làm gì tiếp theo.
     
    0boynhangheo0 thích bài này.
  15. matran999

    matran999 Quản trị viên Thành viên BQT Dịch Giả Kỹ Thuật Viên

    393
    1,409
    93
    29/12/15
    Nam
    TPHCM
    Source cho bác tham khảo. Viết bằng autoit
    Mã:
    ; Mở popup chọn file
    $File = FileOpenDialog("Chọn file .bytes",@ScriptDir&"\","All (*.bytes)");
    ; Đọc file dạng hex
    $FileHex = FileOpen($File,0+16);
    ; Lấy dung lượng file
    $FileSize = FileGetSize($File);
    ; Tạo biến gộp text
    $AllText = "";
    ; Chạy vòng lập đến hết file size
    For $j = 0 To $FileSize
        ; Lấy vị trí con trỏ hiện tại
        $pos = FileGetPos($FileHex);
        ; Nếu con trỏ lớn hơn hoặc bằng file size thì dừng lập
        If $pos >= $FileSize Then
            ConsoleWrite("Done");
            ExitLoop
        EndIf
        ; Lấy số thứ tự của block text
        $number = FileRead($FileHex,4);
        ; Lấy size block 1
        $size1 = Dec(Hex(FileRead($FileHex,1)));
        ; Lấy vị trí hiện tại của con trỏ
        $posHere = FileGetPos($FileHex);
        ; Nếu size 1 lớn hơn hoặc bằng 128 byte
        If $size1 >= 128 Then
            ; Lấy size block 2
            $size2 = Dec(Hex(FileRead($FileHex,1)));
            ; Size block 2 trừ 1 nhân cho 128
            $size2 = ($size2 - 1) * 128
            ; Size block thực của đoạn text bằng size 1 + size 2
            $size = $size1 + $size2;
        Else
            ; Nếu size 1 nhỏ hơn 128 byte thì chuyển con trỏ về lại vị trí cũ
            FileSetPos($FileHex,$posHere,0);
            $size = $size1;
        EndIf
        ; Đọc text dựa trên size block tìm được
        $text = FileRead($FileHex,$size);
        ; Chuyển nó từ binary sang dạng string
        $text = BinaryToString($text,4);
        ; Replace các ký tự xuống dòng thành <lf>
        $text = StringReplace($text,@Lf,"<lf>");
        ;ConsoleWrite($text&@CRLF);
        ; Nối các đoạn text vào biến
        $AllText &= $text&@CRLF;
    Next
    ; Ghi ra file txt
    $FileSave = FileOpen("demo.txt",2+128);
    FileWrite($FileSave,$AllText);
    FileClose($FileSave);
    
    Viết được tool xuất sẽ viết được tool nhập.
     
    Chỉnh sửa cuối: 13/11/19
    0boynhangheo0 thích bài này.
  16. 0boynhangheo0

    0boynhangheo0 Thành viên mới

    9
    1
    3
    8/11/19
    Việt Nam
    Vâng. Cuốn quá anh ạ. :=P:=P:=P
     
  17. 0boynhangheo0

    0boynhangheo0 Thành viên mới

    9
    1
    3
    8/11/19
    Việt Nam
    Cảm ơn ạ. :v
     

Chia sẻ trang này