**REPOSTING** SOM TERMINOLOGY THREAD

#1
Originally posted by HolyDiver:
========================================================================================

Seriously now (we can always edit this top post)

I made this thread to define SOM terms (the English terms which we choose to use as a community)

This isn't necessarily the definitive glossary as such, though wherever that is established (on the main website somewhere) should basically be reflected in this thread (edited into the top post -- possibly with a link to the main website for a complete list)


John's work is amazing, no disrespect, but I think it's more important we all work this out together. If John's version of SOM was the only version, I would just leave it to him. But I think down the road there will be many spinoffs of SOM and the groups of tools for this niche of games would ideally all share the same lingo.

It's better to address this asap rather than retconning it further down the line. This thread will also help people keep up with any changes in terms and hopefully minimize confusion.



That said, I would like to make some proposals to get started, but I want everyone to take this seriously and combine our collective knowledge to make sure no influential aspects of SOM are left out.

To begin with, many terms used by SOM are influenced by the original filetree folder names (I'm assuming John has not changed these) ...these would include enemy, item, map, menu, my, npc, obj, sfx, sound. It's probably not worth changing the names of these folders, or the names of things stored in them (so to avoid any confusion) ...but I would not completely put this off the table. There will be other non-English translations and Japanese should never be the authority on English matters.

There are also limitations upon the number of letters in a name dictated by the original PE (exe/dll) images. This may or may not be a limitation in the future after a proper translation regime is established. For the games it isn't, but GDI/resource widgets might be a different story (probably not however)

Anyway, basically what I can bring to this discussion is knowledge of proper technical terminology. We could decide to go a more domesticated route considering the audience for SOM developers is not necessarily technically minded people. But still some of the terms currently in use are technically incorrect.

This thread isn't about me though, I really want everyone to talk about this, because the translation possibilities are going to start opening up, and the website is going to start undergoing changes which will mean copying over a lot content to a different system, which would be a good time to change the way things are talked about on the main site. Nevertheless it's never too early to address such matters. Possibly we can even come to some consensus before John releases another round of his translation patches...
- Todd DuFore (DMPDesign)
Site Founder
Reply

#2
Below is an example of what goes in a po file which we will be using to translate SOM games and tools into any language. This is ready to go for you game exe and som_db.exe. I haven't tried ways of rewriting text in the tools but if/when I figure that out the same sort of files will be used. This is the way professionals (especially Unix ones) localize software. It doesn't get any easier. There are programs you can used for editing these files with a GUI but I find it's just as easy to hand edit them, if not easier.

We need a complete pot (po template) file for som_db.exe. You can then use that to generate your initial translation from the original Japanese to your game (there's no reason to translate a translation, so it's best to go from the original text for the builtin system stuff)

I will do this for my own project if I gotta. But it's up to you guys to help compile the template file. It's something anyone can do. Though I admit the Japanese part might be a little daunting. If no one is comfortable transcribing Japanese maybe you could help by taking screen shots or just leaving the Japanese blank or something.

The msgstr below is for my own project. The comments are for John's original translation. I'm not positive about most of them because I overwrite most of it to make my project more unique. So in the default terminology pot, the comments and msgstr should be the same.

I wish you guys would figure out how to do this amongst yourselves, so I can focus on doing things like writing programs to dump the text out of your game so it can be added to your game specific translation files. I don't want to hear complaining about this. We can discuss terminology as well, but the primary goal in this is to make SOM games available to people around their world in their own language (don't worry, for the most part it will be up to players to do the translation... which will be very easy for them to do -- but I will make an effort to translate many of the best games here into Japanese because I think that is important)

EDITED: If you want to make your own text file you have to be sure your editor will save in UTF-8 mode. Standard Notepad/Wordpad will not, even if you save as Unicode it will convert to UTF-16LE, however in general the text will still be preserved, you just don't want to leave it in a project that way. For our purposes here, these forums are UTF-8, so if you want to add stuff to what I've done below, you can just post your additions, and I'm sure someone would be happy to compile everything at some point. Some one could start by reposting what I've done below with John's translations instead.

# som_db.exe po file.
#
msgid ""
msgstr ""
"Project-Id-Version: 1.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-25 07:43-0500\n"
"PO-Revision-Date: 2008-11-27 10:37+0100\n"
"Last-Translator: Holy Diver <[email protected]>\n"
"Language-Team: moonlight-en <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n !=1;\n"
"X-Poedit-Language: English\n"
"X-Poedit-Country: UNITED STATES\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: _e;__;_c;__ngettext:1,2\n"
"X-Poedit-Basepath: .\n"
"X-Poedit-SearchPath-0: .\n"

#JDO: MAIN MENU
msgid "???????"
msgstr "MAIN MENU"

#JDO: USE ITEM?
msgid "??????"
msgstr "TAKE ACTION"

#JDO: CAST SUPPORT MAGIC?
msgid "??????"
msgstr "USE ABILITY"

#JDO: CHANGE EQUIPMENT?
msgid "????"
msgstr "CHANGE EQUIPMENT"

#JDO: ?
msgid "?????????"
msgstr "STATUS DETAILS"

#JDO: STORE ITEMS?
msgid "??????"
msgstr "PUT AWAY ITEMS"

#JDO: SYSTEM?
msgid "????"
msgstr "SYSTEM MENU"

#JDO: Level
msgid "???"
msgstr "Degree"

#JDO: Class?
msgid "???"
msgstr "Status"

#JDO: HP
msgid "??"
msgstr "Lifeforce"

#JDO: MP
msgid "??"
msgstr "Condition"

#JDO: Strength
msgid "??"
msgstr "Battle Power"

#JDO: Magic
msgid "??"
msgstr "Arcane Magic"

#JDO: Gold?
msgid "????"
msgstr "Coin Purse"

#JDO: Experience
msgid "???"
msgstr "Kill Score"

#JDO: Status
msgid "??"
msgstr "Danger"

#JDO: Elapsed Time
msgid "????"
msgstr "Elapsed Time"
Reply

#3
PS: We should get this done for Todd before he finally releases DD. I for one want DD to be accessible to players in their preferred language. And it will be best if the translation framework for DD is there from day one.
Reply

#4
Update: There is a a better file for the original som_db.exe text attached a few pages down, but I'll leave this one here in case anyone needs it to try out the translation extension (I will repost links to that at top when available for download)


Here is the som_db.exe file, in case anyone has a Shift_JIS capable hexeditor and could pull out the Japanese text block for everyone working on this Wink


Attached Files
.exe   som_db.exe (Size: 464 KB / Downloads: 209)
Reply

#5
Here is a hairy DOS batch file for dumping your games text. I've never really worked with batch files before. I still have to program the three command line tools that will extract the text, but after wading thru all this loopy DOS syntax that should be the easy part.

Quote:@echo OFF

setlocal

if not exist som_db.exe.pot set /p sdbpot=Where is som_db.exe.pot?
if not defined sdbpot (set sdbpot=%cd%\som_db.exe.pot) else (set sdbpot=%sdbpot%\som_db.exe.pot)

if not exist "%sdbpot%" echo som_db.pot does not exist: unable to continue
if not exist "%sdbpot%" goto :eof

if not exist datpot.exe set /p datpot=Where is datpot.exe?
if not defined datpot (set datpot=%cd%\datpot.exe) else (set datpot=%datpot%\datpot.exe)
if not exist prmpot.exe set /p prmpot=Where is prmpot.exe?
if not defined prmpot (set prmpot=%cd%\prmpot.exe) else (set prmpot=%prmpot%\prmpot.exe)
if not exist evtpot.exe set /p evtpot=Where is evtpot.exe?
if not defined evtpot (set datpot=%cd%\evtpot.exe) else (set evtpot=%evtpot%\evtpot.exe)
if not exist PROJECT.DAT set /p prjdat=Where is PROJECT.DAT?
if not defined prjdat set prjdat=%cd%

if not exist "%TEMP%\Swordofmoonlight.com" md "%TEMP%\Swordofmoonlight.com"

set _=%TEMP%\Swordofmoonlight.com\XGETTEXT.bat_

if not exist "%datpot%" echo datpot.exe does not exist: unable to output .dat file contents
if not exist "%datpot%" goto :prm

echo Looking in PARAM folder for .dat files...

if exist "%_%dat.pot" del /Q "%_%dat.pot"
"%datpot%" "--output=%_%dat.pot" "%prjdat%\PARAM\*.dat"

if not exist "%_%dat.pot" echo datpot failure

:prm
if not exist "%prmpot%" echo prmpot.exe does not exist: unable to output .prm file contents
if not exist "%prmpot%" goto :evt

echo Looking in PARAM folder for .prm files...

if exist "%_%prm.pot" del /Q "%_%prm.pot"
"%prmpot%" "--output=%_%prm.pot" "%prjdat%\PARAM\*.prm"

if not exist "%_%prm.pot" echo prmpot failure

:evt
if not exist "%evtpot%" echo evtpot.exe does not exist: unable to output .evt file contents
if not exist "%evtpot%" goto :out

echo Looking in DATA\MAP folder for .evt files...

if exist "%_%evt.pot" del /Q "%_%evt.pot"
"%evtpot%" "--output=%_%dat.pot" "%prjdat%\DATA\MAP\*.evt"

if not exist "%_%evt.pot" echo evtpot failure

:out
set out=%1

if not defined out set /p out=What is the name of the game pot file? [XGETTEXT.POT]
if not defined out set out=XGETTEXT.POT

if exist "%_%dat.pot" (set a=+ "%_%dat.pot") else (set a= )
if exist "%_%prm.pot" (set b=+ "%_%prm.pot") else (set b= )
if exist "%_%evt.pot" (set c=+ "%_%evt.pot") else (set c= )

if defined a goto :fin
if defined b goto :fin
if defined c goto :fin


set /p fin=only som_db.exe.pot exists: continue? [y/N]
if fin==Y goto :fin
if fin==y goto :fin
if fin==N goto :del
if fin==n goto :del
echo assuming No was meant: no output was generated
goto :del

:fin

echo #rename this file like your game's .exe file with a .pot file extension > %out%
echo #don't forget to remove these lines and be sure to save as a UTF-8 file >> %out%
echo. >> %out%

copy /Y /B "%out%" + "%sdbpot%" %a% %b% %c% "%out%"

:del
if exist "%_%dat.pot" del /Q "%_%dat.pot"
if exist "%_%prm.pot" del /Q "%_%prm.pot"
if exist "%_%evt.pot" del /Q "%_%evt.pot"

endlocal

:eof

This was the only way to go without asking people to install Cygwin or anything unfortunately.
Reply

#6
very nice.

made the batch and am going to toy with creating a test .po file sometime next week to mess with this.
- Todd DuFore (DMPDesign)
Site Founder
Reply

#7
I was going to add a line to delete the Swordofmoonlight.com folder from the temporary directory if it was empty, but there doesn't seem to be any way to do that. No wonder Windows System/Temp folders are so insane Doh

There is something like this: https://blogs.msdn.com/oldnewthing/archi...99914.aspx but dunno that it's worth it just to be tidy.

You will have to build your first pot file for your game this way. Then you can upload it to the server for people to start translating. We still need som_db.exe.pot however, which is basically just glued to the top of all game pot files. That pot file has all the messages (ie. strings/text) that is built in to the exe. The rest is stuff you've added via the editors. In other words, we still need help filling out the som_db.exe.pot file.

I will try to find a Shift_JIS hexeditor (if I gotta do everything) and just copy all the Japanese into a post so you guys can visually copy/paste it rather than trying to lookup Japanese online (which can be tough)


EDITED: Added/changed...
set /p fin=only som_db.exe.pot exists: continue? [y/N]
if fin==Y goto :fin
if fin==y goto :fin
if fin==N goto :del
if fin==n goto :del
echo assuming No was meant: no output was generated
goto :del

Before the code would not have even worked as I tested against "yes" instead of "Y".
Reply

#8
I could not find a way to copy the text out of the exe. I could probably program something. But I've chopped just the region of the exe that includes text displayed in the game. It will be attached. You can open it at least in this editor here (https://www.zob.ne.jp/~c.mos/soft/bz.html) and copy individual lines of text out of it. If you try to do a copy of the whole thing the copy will stop at the first 0 byte (because that's technically the end of text) or at least pasting into text editors gets you that. It's very possible all of the binary data is copied into the clipboard. But anyway, this is the best I got for now.

When you open it into that hex editor, punch alt+v and then c, and choose ???JIS. From there you can copy out all of the Japanese, which will make getting it into the pot file as easy as visually recognizing it and copy/paste. Would probably be easier in the long run if someone filtered out all of the non text stuff and copied the text line by line into a unicode text file.


Attached Files
.bin   som_db.exe_game_text_region_only.bin (Size: 19.04 KB / Downloads: 181)
Reply





Users browsing this thread:
1 Guest(s)