Topic on Talk:Multilingual Templates and Modules

Klein Muçi (talkcontribs)

I recently discovered this project. I deal a lot with https://en.wikipedia.org/wiki/Module:Citation/CS1 and its subpages in my homewiki (SqWiki) and have to update every 3 months or so to keep it up to date with EnWiki. So do 90% of the other wikis which rely on it for their citations renderings. Would it be possible somehow that this project helps with that aspect?

Lectrician1 (talkcontribs)

Currently, DiBabel, the tool this project focuses on and could help you copy the template, is down. So until that is back up, nothing else can help you unfortunately.

Klein Muçi (talkcontribs)

Ah... Sad. If that is back up, I'd really appreciate some help in regard to the CS1 module given that I'm new to the whole concept and wouldn't know how to properly work with it. But thanks for your quick answer anyway! :))

Sophivorus (talkcontribs)

Hi! Are you or User:Trappist the monk still interested in this? DiBabel is down but I recently created Synchronizer and just added Module:Citations/CS1 to the Dashboard, see Multilingual Templates and Modules#Module:Citation/CS1. Notice I also set "enwiki" as the master wiki, which means that the status of all other wikis is determined by comparison to the enwiki version (I presume the enwiki version is the closest to a "master" branch). Anyway, I hope you find it useful, and let me know if you notice any bugs or if you'd like to request any features!

Klein Muçi (talkcontribs)

Hello, @Sophivorus! Thank you a lot for the message. I am. Some reports, requests and replies (and a lot of questions!)

On a quick glance, I noticed that there aren't any tooltips. I personally rely heavily on them. I wasn't sure about the symbols beside the modules name in the list and I tried many times hovering over them or refreshing the page until I finally understood that those are actually clickable buttons. I understood that the lock symbol is used for different kinds of protections (which are shown when clicked) but I'm still not sure about what the exclamation mark symbol is trying to tell me, even after clicking on it.

I also tried hovering over the update/outdated/forked terms to understand more about what each of them exactly meant but nothing happened.

I tried the demo and was greatly surprised to see that it actually did real changes which were saved immediately after pressing the confirmation button which came after pressing "Update" on a random wiki. I really think you should preview the changes in the local wiki before saving anything and only save them from there. Or at least to have this made into a toggle preference.

What is the general premise here? We'll use Mediawiki as a central place to update everything? Wouldn't Meta be a better place for that?

Sorry for asking this but how exactly does it work? I read the template's documentation but wasn't able to fully understand it.

The CS1 module is made up of a suite of ~10 (sub)modules which more or less need to be updated simultaneously for the module to work correctly. Can Synchronizer be enhanced to understand this? It also requires a lot of categories. Again the same question.

Can Synchronizer be enhanced to understand translatable strings/forkable parts and act accordingly with them? Many submodules of CS1 are supposed to have 99% of the same content with EnWiki except for the occasional strings which are to be localized or some small modifications. I'm guessing this is what forked means more or less. It would be nice to have such strings highlighted and not touched while the other part of the content gets updated. Brainstorming: Maybe we can be asked individually (maybe with a form with text fields) for such strings to put them down how we want them. Maybe they can be marked as translatable/forkable parts in the master branch and in the local version?

Walking the extra mile: Can we get notifications in any way possible when certain versions start getting +X% outdated?

Sophivorus (talkcontribs)

Hi!

  1. Tooltips added, both for the icons and for the status messages. Let me know if they are clear enough now or how would you phrase them.
  2. I'm currently working on those diffs! In the meantime, I added a word of caution to Synchronizer#Demo to hopefully prevent others from having the surprises you had.
  3. Yes, I guess the general premise is using MediaWiki.org as a central place to update everything. That being said, Synchronizer is (almost) ready to work from any other Wikimedia wiki, as long as MediaWiki:Synchronizer.js is copied to said wiki. However I'm not sure the effort of spreading it would be worth the trouble.
  4. The tool works thanks to MediaWiki:Synchronizer.js, which basically does a bunch of API calls. There's also Template:Synchronize which is implemented by Module:Synchronizer and basically outputs the button you click to load the tool and some other crucial markup.
  5. Yes, Synchronizer can be used for submodules too, see for example what I did here and feel free to add the other submodules. Will this do?
  6. Translatable strings are an old problem. See Multilingual Templates and Modules#Localized user-readable strings (the text needs some work but the ideas are there).
  7. Notifications when versions are getting too outdated (or forked) sound like a good idea but I can't think of an good way to do it yet. We'd need to somehow store a list of interested users for each module, as well as who has been notified and who has not, which would require a database (which Synchronizer doesn't have) or using a wiki page as the database (which sounds ugly but doable). I'll give it some thought.

Cheers!

Klein Muçi (talkcontribs)

Hello back! Thank you for the applied changes and the reply! :)

1. Now it's pretty good. Maybe the "Update" button should also have a tooltip, felt like it was missing one. But then again you get a confirmation after clicking it so I'm not sure.

5. That's good but I was hoping for a way to have everything in one place. That said I suppose that from a "front-end POV", you can achieve that by creating a page dedicated to the CS1 suite that utilizes the same template many times without having the need to do any changes to the actual template's functionality. As for the categories, this exists. I'm not sure if the Synchronizer can make use of such a thing in any way. I understand that what I'm proposing above seems more like a special version of Synchronizer dedicated to CS1 than a generic tool that helps keep track of different modules, which is the current main aim. Just for your curiosity, some years ago, I proposed this but failed to get any replies. You'll see that most of the ideas I've put there are actually doable by Synchronizer so I just mentioned some of the remaining ones. Maybe they serve as food for thought.

Sophivorus (talkcontribs)

Well, it wasn't easy, but I managed to add some diffs. Notice that diffs will only show for Outdated modules, not for Forked modules. Still I hope they'll be useful. Let me know of any bugs!

I haven't been able to look into your links yet. Next time!

Klein Muçi (talkcontribs)

Tried a couple of cases in RTL and LTR languages and everything was okay. I just feel that the warning should be stronger in forked occasions. Maybe some bold text or some red highlight somewhere should be introduced. At least, until you decide to include diffs for forked versions too.


Also, tangentially related but what do you think the general "ethics" would be about doing changes globally? How acceptable would it be if I had no prior contributions as a user in a certain wiki and went on and updated one of the modules there? Maybe I should only act if I see that the said module has been greatly outdated for a long time? Maybe only if I check the page history and notice that there haven't been any active contributors to it? Maybe certain users can set up themselves somewhere as "Maintainers" so we know who to contact and when to act? Depending on these factors, maybe some new features can be introduced such as an out-of-date percentage and/or anything else related to page history and active maintainers?

Sophivorus (talkcontribs)

Hi! I read your post and checked the other link and I understand now that CS1 also involves several categories and help pages. I agree that Synchronizer, as a general-purpose tool, may not be perfect for the CS1 case, but I trust it'll still be helpful. Also, notice that I coded the tool general enough to not be limited to Lua modules. It can be used to synchronize any kind of page. See for example what I did here. Of course that the text of category and help pages will inevitably vary per wiki, so they all show as Forked, so I don't see much value on using Synchronizer with them (yet). However, one feature I could add to Synchronizer is some option to list all wikis, including those where a module (or category or whatever) doesn't exist yet, and have a Create rather than Update button for those. I'll give it some thought.

Good news! I was able to add the diff feature for Forked modules too. Furthermore, the tool now shows how many revisions behind outdated modules are.

Regarding ethics, I think that good-faith and reasonably careful updates are generally ok. After all, it's you and Trapist that have been developing the module! Furthermore, most wikis are in dire need of technical contributors and updates, and there's no rule saying you can't edit a wiki in another language, even if there's another user doing so. If there were such a rule, the wiki or module would be protected. Now, if a module is protected, or you get a warning or revert from a local user after an update, then sure, take that into account for future updates to that wiki. But until then, I'd go ahead without wasting a second. Be bold!

Klein Muçi (talkcontribs)

Thank you for taking the time to read through my links.


Things are looking nice. If you wish, I'd be interested in knowing about any other future updates.


Good luck! :)