Talk:Multilingual Templates and Modules

About this board

Sophivorus (talkcontribs)

Hi! I'm rather surprised about the lack of interest and use of the Synchronizer tool and the new approach documented at Multilingual Templates and Modules. Is there something wrong about it? I personally find it invaluable when updating the modules I develop (Transcluder and Excerpt) across wikis. But besides me and User:Uzume, no one seems to be using it. What's up?

Lectrician1 (talkcontribs)

You need to publicize it more! You should get it on the Signpost and Tech News! Post it on the telegrams, mailing lists, discord, etc.

Sophivorus (talkcontribs)
Quiddity (WMF) (talkcontribs)

Hi, thanks for the suggested Tech News entry!

I'm wondering if either the entry there, and/or the documentation page, should mention something about the cautions around using such a powerful tool on wikis that a person may not be familiar with?

I.e. I'm not sure if there are ways it could be accidentally misused by someone who is more confident/eager than they are an expert with Lua... I imagine something like "warning: only use this tool if you understand Lua and the repercussions of the changes you are making at each wiki." might be a helpful warning to some people looking at the page? I'm not sure how to contextualize that in the Tech News entry though.

Sophivorus (talkcontribs)

Hi, good point! I just added a clear warning at Synchronizer, and also added a check to the code to require that the user be logged in at least. As to the warning in the Tech News entry, I think it's not necessary because anyone interested that follows the link, will find the warning anyway. That being said, if you still want to add a warning to the Tech News entry, please go ahead!

Quiddity (WMF) (talkcontribs)

That makes sense, and thanks for the page-edit and logged-in check. I'm glad I could help! This is a really great tool, and I wish I knew enough Lua to be confident in using it! Thanks again, for everything :)

Reply to "Lack of interest"

New tool for synchronizing modules and templates

7
Sophivorus (talkcontribs)

Hi all! I wanted to share with you Synchronizer, a new tool I'm developing to replace the fallen DiBabel. Synchronizer is heavily inspired in DiBabel but is also much simpler and made completely in-wiki. It's currently on MVP stage, but I already find it invaluable. I hope you too! Let me know of any issues or requests, cheers!

Sophivorus (talkcontribs)

Hi again! I spent much of my day boldly updating and rewriting this page to account for Synchronizer (see especially the Dashboard section). I hope some of all this turns out useful, cheers!

Sophivorus (talkcontribs)

Hi, great news! I just improved Synchronizer so that it's now possible to change the "local" or "master" wiki to any wiki, not just MediaWiki.org, see for example this

Sophivorus (talkcontribs)

Hi! Synchronizer now shows a diff before updating Outdated modules. Diffs don't work for Forked modules though. I also fixed a few issues that may have caused the tool not to work for you. Next I want to add an "Update all" button. Cheers!

Sophivorus (talkcontribs)

More updates! Now diffs are available for both outdated and forked modules, and for outdated modules, the number of revisions behind are shown.

Sophivorus (talkcontribs)

Many more updates! The tool has evolved rapidly thanks to the feedback and support from Uzume (thanks!). Here are some of the new features:

  • Button to update all non-forked modules (only visible to autoconfirmed users)
  • Button to analyze forked modules
  • Detection of Unrelated modules (modules with no common history to master)

Ping to Klein Muçi who was interested in knowing about updates.

This post was hidden by Klein Muçi (history)
Reply to "New tool for synchronizing modules and templates"
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! :)

Moving some very internal modules into Scribunto

2
Summary by Sophivorus

Tracked in phab:T209310 and implemented as the "strict" library, see Extension:Scribunto/Lua reference manual#Strict library.

Amire80 (talkcontribs)

A naïve question: Can some very internal, technical modules that are used in a lot of pages and wikis, such No globals, String, or Arguments be moved into the standard library in Scribunto itself?

Amire80 (talkcontribs)
Summary by Sophivorus

DiBabel has been down for about two years but there's now Synchronizer available.

Capankajsmilyo (talkcontribs)

Hello all, I just pinged in to check what is the current status of the project. Has anything progressed since I last checked a couple of months ago? Just curious.

Yurik (talkcontribs)

A bit slow :) Ideally we may want to create a tool that users can use to distribute the module/template to all wikis under their own user account. The biggest issue is how much time the project takes -- that's why its progressing a bit slower than I would hope.

Capankajsmilyo (talkcontribs)

Hi @Yurik Any new conversion or bot acceptance since our last discussion?

Language showcase about module translation

2
Summary by Sophivorus
Aaharoni-WMF (talkcontribs)

Hi!

I'm pinging a few pages about this, and this one is perhaps the most relevant, because you are already doing something similar, and I'm trying to see how can it become even better.

This Wednesday, August 26 at 12:00 UTC (noon) there will be an online meeting on the topic of localizing Scribunto Lua modules.

More about this event: mw:Wikimedia Language engineering/Showcase.

All editors are invited, especially all those who:

  • Develop modules and templates in any wiki, particularly the multilingual ones such as Wikidata, Commons, Meta, and mediawiki.org.
  • Translate software and pages using the Translate extension on translatewiki.net, Meta, mediawiki.org, etc., and manage translatable pages.

A little intro can be found at Phabricator task T238417, and much more information will be given at the meeting.

Thanks!

Aaharoni-WMF (talkcontribs)

Time change

I've been feeling very unwell today, and since I'm the main host and presenter in this meeting, I have to postpone this meeting to next week.

New time: Sep 2, 2020 02:00 PM UTC. Zoom link: https://wikimedia.zoom.us/j/95167235390

I am terribly sorry about the late notice and about the spam, but these circumstances are out of my control. Thanks for understanding, and I hope to see you at the new scheduled time! :)

Summary by Sophivorus

DiBabel has been down for about two years, but Synchronizer is now available.

Amire80 (talkcontribs)

https://dibabel.toolforge.org/ says "502 Bad Gateway". In early 2021, it looked quite broken and couldn't perform some actions that it used to perform well.

Is it ever coming back?

I don't think I'll have the bandwidth to learn its code and bring it back, but perhaps @Yurik can find some time for it?..

Amire80 (talkcontribs)
Putnik (talkcontribs)

It's bad that DiBabel stopped working. If Yurik doesn't return it soon, I'll try to do something with it in a month or two.

Amire80 (talkcontribs)

Any news?..

English is not fallback in some cases

4
Summary by Diegodlh

Some languages have alternative fallback languages before English.

Diegodlh (talkcontribs)

Hi! I was trying this feature when just by chance found that Spanish (instead of English) is the default language when the Avañe'ẽ (gn) language is set (I'm a Spanish speaker myself; could this be interfering somehow?). You can check this here:

https://commons.wikimedia.org/wiki/Data:I18n/Web2Cit.tab

Switch the interface language to Avañe'ẽ:

  • results-header is available both in English and Spanish, but shows in Spanish to me.
  • Same thing with fieldname.itemType.
  • fieldname.language is available in English and Italian (not in Spanish), and successfully fall backs to English.
  • last-check is only available in Italian, and that's what it fall backs to (as expected).
Dexxor (talkcontribs)

The fallback languages for "gn" are "es" and "en", in that order. This seems intended.

Diegodlh (talkcontribs)

Oh!! Because that's Guaraní!! I didn't realize that when I checked this late at night yesterday. It is a language spoken in some regions around Paraguay in South America. It makes total sense that Spanish is the fallback language. It sounds great! Would you please tell me where it is that this is defined? I mean, where (a config file?) it says that "es" and "en" are fallback languages of "gn" in that order? Thanks!

Dexxor (talkcontribs)

Some ways to check fallback languages are listed at Manual:Language#Fallback_languages. In Lua modules, mw.language.getFallbacksFor('gn') is available. All languages seem to implicitly fallback to English as a last resort.

Globalization of Module:Excerpt

1
Summary by Sophivorus

Module was renamed to Module:Transcluder and is now listed at Multilingual Templates and Modules#In progress.

Sophivorus (talkcontribs)

Hi! I'm so happy this project exists! The problem this project aims to solve is so important and fundamental to efficient and effective collaboration that you can count with my long term support. In the short term, I'll try to "globalize" the Excerpt module I've been working for some time and currently developing as part of this grant. I just started the process by creating Module:Excerpt here at MediaWiki.org and will follow the instructions on this page until I complete the process or get stuck with some issue. In any case, I'll let you know through here. Thanks, thanks thanks!

Add vec.wikipedia to the mediawiki templates

7
Fierodelveneto (talkcontribs)

I tried in several ways to combine the templates of vec.wikipedia to those of mediawiki, but I can't. I do not understand anything and there is an absolute need to connect them! Can you help me please?

Yurik (talkcontribs)

@Fierodelveneto please give a bit more details. What templates are you trying to use in vec.wikipedia? There is currently very few templates that support the new system, so its a work in progress. See the "done" section.

Fierodelveneto (talkcontribs)

https://vec.wikipedia.org/wiki/Mod%C3%A8l:Divixion_aministrativa

I wanted to connect this!

I'm not an expert! I tried to read, but I don't understand anything! Too many things written, but nothing that really says what should be done!

Sorry if I ask here, but I have no alternative!

Thank you very much for your answer !!

Yurik (talkcontribs)

@Fierodelveneto it would be great to support something like, but I am affraid it won't be simple. The template you mentioned uses -- Modèl:Avixo , Modèl:Divixion aministrativa/TemplateData, Modèl:Divixion aministrativa/man, Modèl:Exoteric, Modèl:Icona del titoło, Modèl:Man, Modèl:Modeło conpleso, Modèl:Parametro, Modèl:Proteta, Modèl:TabełaModełi, Modèl:TemplateData, Modèl:Tl, and all of them also need to be modified to be used with the new system. So the short answer is that it won't be possible right away unless you are willing to learn Lua and in-depth templates, translate them, etc. No "magic bullet" yet.

Fierodelveneto (talkcontribs)

Isn't there anyone who can help us by putting our main templates up to standard?

Of course we will translate them into our language, but the real problem is that we are unable to use the codes!

Thanks again for your reply

Capankajsmilyo (talkcontribs)

I am willing to help with limited knowledge I have. @Fierodelveneto first of all you need to get the bot activated in your language wiki. Then we can work on modules one by one.

Fierodelveneto (talkcontribs)

@Capankajsmilyo:hello thank you for your offer, however, after a month, we have already managed to do it and we have successfully connected various templates to Wikidata. Thank'u

Reply to "Add vec.wikipedia to the mediawiki templates"