[Religion and Revolution]: Mod Development

Status
Not open for further replies.
Just a last point. While working on the pedia translation, it recalled me some comments I've read here or there on forums about people feeling discouraged by the complexity of RaR. It reminded me my first reaction when I opened the mod for the first time. Clearly it seemed overwheming, and just after getting a bit more into it, I realized it wasn't so much.

Anyway, I actually thought about creating a summary scheme of RaR, a bit like the paper poster the DVD version of Civ4 was shipped with. Maybe three tables listing buildings, civil and military units, and a techtree-style scheme with rectangles and arrows to understand how yields work and what we can do with them. I terribly want to start that task, but I want to finish the French translation first before starting something new.
 
If you have modified the <TEXT> for some old events in a meaningful way (changing the sense of them), I would be glad to know in order to correct them the same way in French.
SVN has a log to detect stuff like that. I just pulled the changes in Assets\XML\TEXT since rev 603 (seems to be the first python change) and saved output in attached txt file.

- line removed
+ line added

You should be able to figure out the rest ;)
 

Attachments

SVN has a log to detect stuff like that. I just pulled the changes in Assets\XML\TEXT since rev 603 (seems to be the first python change) and saved output in attached txt file.

- line removed
+ line added

You should be able to figure out the rest ;)
Thanks! It's sad there's no "like" button on this forum. :)

Argh! There are 1,270 lines in that thing! Ray!!!
 
Argh! There are 1,270 lines in that thing! Ray!!!

Well, I am creating a massive amount of new events. :)
(And those events have a lot of text.)

Most of the new stuff is inside CIV4GameText_Colonization_Events.xml

Simply check for this tag:
<!--New Event RaR 2.1 -->

Otherwise take a look at these TXT_KEYS:

TXT_KEY_EVENT_TRIGGER_PEASANT_WARPREP_1
TXT_KEY_EVENT_PEASANT_WARPREP_1
TXT_KEY_EVENT_PEASANT_WARPREP_1A

And in CIV4GameText_RaR_Release2.xml I created these new TXT_KEYS:

TXT_KEY_EVENT_HEALTH_CITY
TXT_KEY_EVENT_HEALTH

----------

I suggest the following:

A. For now ignore CIV4GameText_Colonization_Events.xml.
(I am still creating a lot of new events.)

B. Once you have finished your other translations:

1. Put them into your local repository.
2. Do SVN->Update

--> SVN will merge then the changes from SVN Server with your changes.

3. Commit to SVN Server.

Thus all of our changes should be in SVN again. :)

By the way:

1. Notepad++ also has a really useful "Compare" function.

2. Once a workpackage (in your case translation of a file) is done, it should be commited to SVN.
(Other people might need to work on these files as well.)

-> Please commt a file, once it is completely translated. :thumbsup:
(Put it into your local repository and do "SVN->Update" first to merge changes from Server.)

Just a last point. While working on the pedia translation, it recalled me some comments I've read here or there on forums about people feeling discouraged by the complexity of RaR. It reminded me my first reaction when I opened the mod for the first time. Clearly it seemed overwheming, and just after getting a bit more into it, I realized it wasn't so much.

Anyway, I actually thought about creating a summary scheme of RaR, a bit like the paper poster the DVD version of Civ4 was shipped with. Maybe three tables listing buildings, civil and military units, and a techtree-style scheme with rectangles and arrows to understand how yields work and what we can do with them. I terribly want to start that task, but I want to finish the French translation first before starting something new.

Sounds interesting. :)
 
Alright, I took my time, but I've committed all my changes up untill now on the SVN. :)

Assets/XML/Text/ => 16 files uploads (French translation)
Assets/XML/Buildings/CIV4BuildingInfos.xml => Adding new pedia entries for all religious buildings
Public Maps/ => Adding text tags for description in order to allow translated versions


I will be off during next 4 days because I visit some families. I'm not really sure I'll have the time to work on the translations during these days. So now, you have everything I've done.
 
The matter of finding untranslated strings makes me wonder if RaR should have the M:C language modification: http://forums.civfanatics.com/showthread.php?t=523899

The important part here is that if a string is empty, then it will use the English string. This mean adding a new string could include <french></french>. The game will then use the English string and there is something useful to search for when looking for untranslated strings. It also allows skipping the french line completely, but then Maria wouldn't have anything to search for.

I have considered writing perl scripts for M:C where it will delete all strings, which are identical to English (untranslated strings) and add the ability to add <french></french> (or any other language) to all strings to ensure there is something useful to search for.

The ability to add new languages with just XML changes wouldn't be bad either ;)

Semi related: searching multiple files at once is a lot easier with grep. There is a free windows version here: http://stefanstools.sourceforge.net/grepWin.html
There should be some Notepad++ feature like that as well, but I never used that one.
 
The matter of finding untranslated strings makes me wonder if RaR should have the M:C language modification:

I'd rather keep the current system.
It is working quite well for us.

Basically we already have:

1. 100% English
2. 100% German translation
3. 100% French translation (soon)

4. Italian and Spanish being mostly untranslated (having copies of English texts)
-> But those would be possible with the current system as well of course.

That is fine for me.

I really don't believe that there will ever be any serious effort to translate this huge mod into any other language.
(With some languages / localizations there would be problems with Gamefonts anyways.)

The ability to add new languages with just XML changes wouldn't be bad either ;)

Well, theoretical possibilities never really convinced me. :dunno:
I am looking for real use cases (for this mod and this mod only).

Changing something that works for something that might eventually one day become useful is not necessary always a good strategy.
It is especially not the current development strategy of this mod. (Efforts and risks.)

There should be some Notepad++ feature like that as well, but I never used that one.

Notepad ++ has quite good search options.
But there are many useful tools around of course.
 
I'd rather keep the current system.
It is working quite well for us.
Except for the fact that Maria has problems finding the untranslated strings. This time the svn log was helpful, but it only worked that well because the new strings were added with no real other interactions in between. Now if it were mixed with unrelated updates of German, then the output would be messy from a French point of view.

Also part of being modder friendly would be not to need svn log access to modify XML. People with modmods would likely lack that log.
 
Except for the fact that Maria has problems finding the untranslated strings.

Well, now translations of the big chunck is done.

Usually translations should happen directly once a new feature is created.
That is why somebody like me keeps up communication. :)

And there is also SVN of course.
Works really well for me, to find out all changes of other users to do quality control.
Thus it should work for team members or partners doing translations as well.

Also, tools like Notepad++ have functions like "Compare". :)
(Makes it really easy to find changes between 2 revisions of a file.)

Also part of being modder friendly would be not to need svn log access to modify XML. People with modmods would likely lack that log.

1. Modmodders will likely change specific XML entries.
Then they would have to change the translations as well (or ignore translations - which is what most small modmods do).

2. Every (mod)modder who is going to publish himself or support our project in any way could get access to our SVN.

---------

As I said, I do not see any real benefits for our mod.
Thus I do not want to change the system and risk introducing complications and bugs.

If this system is beneficial for a modmod, then it shall be introduced in that modmod.
We do not need to worry now about things we do not need ourselves but could eventually one day be useful for some other project.

Edit:

Doing good (high quality) translations is much more than "some translated texts exists or not".
It is also about regularly checking and improving existing translations.
 
I would say that you are both right. Yes a translation of quality requires to review all texts, already translated or not. So I need to read all files from the top to the end, but that's not sufficient : I also need to review the translated text again afterwards.

Of course, I'm doing so in-game, but if Nightingale could make it possible to immediately spot what was fully missed, it could be helpful. In the same way, it would also be less tedious when you add new tags as you wouldn't have to copy paste it 5 times.

If Nightingale is able to develop a script that would automatically erase the texts in other languages that are exactly the same as their English version, then I see no reason to oppose. On the contrary, it can only be useful.
 
... then I see no reason to oppose.

The reason to oppose is very simple:
It is not worth taking the risk of introducing bugs and complications.

The one who is initially creating about 90% of all new text entries is me.
And no, it is almost no effort for me to copy and paste a bit.

The real effort is writing the text or doing the translation itself.
And that would not change at all.

We introduce / change code when it is really useful and necessary.
Not just because we can.

Avoiding a bit of copy paste when setting up TXT_KEYs (which is usually done by myself) is not reason enough for me to change a system that works quite well.
(And from my point of view, the change Nightinggale suggests would bring us no other benefit at all.)

So seriously:
Absolute "no" from my side to changing the current system for TXT_KEYs. :)
 
Alright then I understand. :)

If it wouldn't take too long for Nightingale to help me spot <French> strings which are exactly the same as <English> it could still be interesting don't you think? I wouldn't upload any of them to the SVN, but for reviewing my files before committing them, I could find some errors this way.

Now if it takes too long, I agree it's not worth it.
 
The best way to handle such an issue:

1. Try to structure the XML files in a reasonable way. (We do that.)
2. Invest a one time effort to get to a reasonable base. (Which is almost done.)

After that:

3. Use tools like SVN change log or "Compare" from Notepad++ to find text changes.
4. Try to communicate when new texts are generated.
5. When playing / testing, try to keep an eye on texts and once you notice something correct it right away.

---------

It is (and will stay) the same:
If you neglect a topic for too long, it will be painful to get that topic straightened out again.
 
Once again we have come across a coding idea where I disagree with ray. This time too I coded it for M:C (now CMC) where it works just fine. I don't blame ray for wanting a stable DLL though.

This disagreement is about what goes into RaR. I can always write a perl script to help locating missing strings in a translation and give it to whoever I want as long as such a script itself doesn't make it into RaR. I might as well do it as I considered doing it for CMC anyway.
 
Once again we have come across a coding idea where I disagree with ray.

That is completely normal. :)
Every modder got his own ideas, visions and philosophy.

How often do you think did I disagree with other team members when I was still a member of TAC team ?

I was going completey crazy when I still was an unexperienced modder with all my ideas and all the stuff I wanted to code. :crazyeye:
(Luckily there were experienced modders like koma13 who sometimes hit the break and caught me again or gave good advice. :) )

Today I consider consequences much more "wisely".

This time too I coded it for M:C (now CMC) where it works just fine.

Well, that is great. :thumbsup:

But it still does not mean that everything coded in M:C must (or will) find its way in RaR or vice versa.

The 2 mods are simply in very different situations and have a very different philosophie.

RaR is today a very mature mod.
Very stable and high quality but by far not as active as it used to be in the early phases of the project.
Changes are done much more carefully and focussed on the base mod.

M:C is in the middle of its development.
Still having many open todos but lots of new ideas and features being developed.
A lot more experimental and trying to bring together wishes and ideas of all those modmods.

I don't blame ray for wanting a stable DLL though.

I am taking this even further:
I completely refuse any major changes (with risks for bugs and complications) to the mod, if I cannot see really good reasons or benefits.
(Stability, performance, needed for a good well thought new feature, ...)

And all of my experience tells me, that I don't want to mess around with the system for TXT_KEYs just to have a bit less copy paste.

I can always write a perl script to help locating missing strings in a translation and give it ...

Sounds good. :thumbsup:
 
I completely refuse any major changes (with risks for bugs and complications) to the mod, if I cannot see really good reasons or benefits.
(Stability, performance, needed for a good well thought new feature, ...)

And all of my experience tells me, that I don't want to mess around with the system for TXT_KEYs just to have a bit less copy paste.

I totally agree with ray!
 
I finished writing a perl script to turn all untranslated French lines into <French></French>

Intall/usage guide.
  1. Install perl http://strawberryperl.com/
  2. Download the script files language.pl and XMLaccess.pm
  3. Place those files somewhere where "..\..\Assets" is a valid path.
    (alternatively edit the path in the top of XMLaccess.pm)
    The files assumes they are both at the same location.
  4. Edit language.pl. my $language = ""; at the top should say my $language = "French"; or it will trigger on all languages.
  5. Execute language.pl (either from cmd.exe or possibly doubleclick)
It isn't flawless as it triggers on lines like
<French>[COLOR_WHITE] %d1%% [ICON_POWER][COLOR_REVERT][NEWLINE]</French>
It can tell that it is the same as English, but it can't tell that there aren't anything in it, which should be translated.

I highly recommend using the script on a clean copy (no local modifications) and then use svn diff to check what the script actually did. It looks fine from my testing, but I wrote the script today, which mean I haven't spent days testing it. Feedback is welcome :)
 
Small updates from the Python/XML-Events. :)

I have now already created 40 new events and thus increased the number of total events in RaR to 120.
(This is exactly twice as much as our base mod TAC, which had 60 events.)

I still have a few events on my list and will probably create 10 more the next 2 days.
Thus having 50 new events for the upcoming release and 130 events in total.

Also I have tested all existing events and fixed broken ones (and improved several others).
(Several old events were simply broken or had never been working at all.)

That will be it then for quite a while.
I am kind of fed up creating these Python/XML-Events.

Marla is going to shoot me anyways for all the new texts that have to be translated. :D
 
I have now already created 40 new events and thus increased the number of total events in RaR to 120.
I am kind of fed up creating these Python/XML-Events. :D
Fed up with modding. Who would have imagined that :lol:

Those random events might be simple from a technical point of view, but they do indeed add something to the game. I think it is great that you took the time to give this area of the game a major overhaul :goodjob:
 
Fed up with modding. Who would have imagined that :lol:

Yeah, it is mainly stubbornness that keeps me going. :)

Still need to finish a few topics before I can find my peace as a player.
Otherwise these open todos will haunt me. :crazyeye:

Those random events might be simple from a technical point of view, ...

They really are quite simple from a technical perspective.
But they are time-consuming nonetheless.

... but they do indeed add something to the game.

That is why I never understood why those events are almost ignored by most modders. :dunno:
(It really is a very cool feature for modders that are not deep into programming.)

I think it is great that you took the time to give this area of the game a major overhaul :goodjob:

Thanks. :)
 
Status
Not open for further replies.
Back
Top Bottom