[03:57:45] I was translating https://www.wikifunctions.org/wiki/Wikifunctions:Introduction and ran into this problem: [03:58:45] In the "Create tests" section, it says: [03:58:46] [03:58:47] Click on "Select Function" under "Call" [04:02:18] I figured out that "Select function" and "Call" are not translated in the extension, but in the labels of some ZObjects, although it was not a perfect experience. "Call" was already translated, and the translation was not great, so I had the opportunity to improve it. I found an object in which that string appeared, edited it, refreshed the "Create a new Test" page, and the new t [04:02:19] ranslation appeared there. [04:03:58] So it was good to see the fix immediately, but I was lucky that the search had very few results. What if it had a lot of results? When translating messages that appear in MediaWiki extensions, it's usually easy to find the precise message by using the `&uselang=qqx` trick. [04:04:18] It's not the most obvious or user-friendly trick, but it's documented, and at least some localizers are familiar with it. [04:04:23] So this raises several questions: [04:04:37] 1. Is there something like uselang=qqx to find strings like "Select Function" and "Call"? [04:06:23] 2. In https://www.wikifunctions.org/wiki/Wikifunctions:Introduction , can the hardcoded words "Select Function" and "Call" be replaced with a transclusion, so that it would automatically load the correct translated text automatically? (For real extension messages, there's the `{{int:}}` magic word, but I guess it won't work here.) [04:09:16] 3. The form on the "Create a new Test" page uses a mix of messages from the WikiLambda extension and strings from ZObjects. Is there a list of all the ZObjects whose labels I have to translate to get a full user experience in my language? (Or —which is the same thing— if I want to review the current translation.) [05:48:35] <Алексей> Hello🙂 [05:48:35] <Алексей> [05:48:37] <Алексей> https://github.com/jaguar8kkk/Dorozhnaja-karta-Vsego [09:16:55] Interesting questions all! But the third is rather open-ended, in principle. The full list of objects whose labels might, in theory, appear is the list of all pages in the main namespace, which currently ends here: https://www.wikifunctions.org/w/index.php?title=Special:AllPages&from=Z1804. These are organized by type here: https://www.wikifunctions.org/wiki/Special:ListObjectsBy [09:16:55] Type/Z1. (You have to look at each type separately, but there are only 32 at the moment. There is only one level beneath each type, listing all the objects of that type.) [part 1 of 2] (re @amire80: 3. The form on the "Create a new Test" page uses a mix of messages from the WikiLambda extension and strings from ZObjects. Is t...) [09:18:17] For translations, Z4/type is the highest priority, in my opinion. Z20/test cases and Z14/implementations would be the lowest priority, and their priority would depend on the priority of the Z8/functions that they test or implement. A few of these functions are equivalent to types, so these would be the highest priority. Only one of these is currently supported: Z881/typed list. ( [09:18:17] The others should be referenced in the glossary and function model. They will also be found at https://www.wikifunctions.org/wiki/Wikifunctions:Reserved_ZIDs.) [part 2 of 2] (re @amire80: 3. The form on the "Create a new Test" page uses a mix of messages from the WikiLambda extension and strings from ZObjects. Is t...) [12:30:35] I may be misunderstanding something, but I'm really surprised that something as basic as adding a test depends on content. Like, I'd think that adding a test to a function is a part of the platform, not of a particular site. If another site uses the WikiLambda extension, they will have to define a completely different test system or to import it from Wikifunctions. Will any other [12:30:35] site want to define their own? [12:31:58] And if most sites will want to import it, why not make it built into a platform, so that it will be convenient to translate without having to hunt for labels under Z items? [12:33:49] (And if the assumption is that no other sites.will be using the WikiLambda extension at all, then the conclusion is the same: build it into the platform to make it easy to translate.) (re @amire80: And if most sites will want to import it, why not make it built into a platform, so that it will be convenient to translate with...) [12:35:57] Thanks for the tips about the important Z items. Do you happen to have answers to the other two questions? (re @Al: Interesting questions all! But the third is rather open-ended, in principle. The full list of objects whose labels might, in the...) [12:37:22] Also, is there a way to find those important items by examining the platform, without gaining experience and seeing the same ZIDs everywhere? [12:42:02] I don't know how to do it on Wikidata either. For example, I happen to know that "instance of" (P31) is very common in Wikidata, but that's just because I often look at Wikidata and see it. So is there a way to see this frequency and importance on Wikidata and Wikifunctions without relying on experience and intuition? (re @amire80: Also, is there a way to find those important ite [12:42:04] ms by examining the platform, without gaining experience and seeing the same ZID...) [12:48:48] (If anyone wonders, on translatewiki, the same thing in the translation of "MediaWiki extensions used by Wikimedia" is managed by manually dividing them into severe groups. The most important ones are under "Main", and there are also "Advanced", "Fundraising", etc. It's curated by translatewiki server administrators, one of whom is myself. We use a mix of technical criteria and i [12:48:49] ntuition to decide where each extension goes. We think it works well, but we welcome suggestions for improvement.) [13:28:25] Sorry, I don’t, but I’m sure somebody does… (@Sannita?) (re @amire80: Thanks for the tips about the important Z items. Do you happen to have answers to the other two questions?) [13:43:01] I can ask them tomorrow when business resumes (re @Al: Sorry, I don’t, but I’m sure somebody does… (@Sannita?)) [13:49:03] I’m not sure. I believe that translating all the objects apart from functions, implementations and tests gives you your basic lexicon. Translating all the functions with ZIDs less than 10000 gives you a working lexicon. Then you could specialize by looking at functions grouped thematically in https://www.wikifunctions.org/wiki/Wikifunctions:Catalogue. After that? I would see wh [13:49:04] at is happening to *T359672 *but there is a community-led perspective in https://www.wikifunctions.org/wiki/Wikifunctions:WikiProject_Maintenance. The theory here is that there is some correlation between the number of tests and the importance or stability of the function. (That is not a very strong correlation today.) (re @amire80: Also, is there a way to find those important it [13:49:05] ems by examining the platform, without gaining experience and seeing the same ZID...) [14:00:07] Please see https://www.wikidata.org/wiki/Help:Frequently_used_properties and (linked from there) https://www.wikidata.org/wiki/Wikidata:List_of_properties (or go straight to https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all) (re @amire80: I don't know how to do it on Wikidata either. For example, I happen to know that "instance of" (P31) is very common in Wikidata,...) [14:12:02] 🤔Please make sure you avoid https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all/he initially, since that seems to include only those that have been translated. (re @amire80: I don't know how to do it on Wikidata either. For example, I happen to know that "instance of" (P31) is very common in Wikidata,...) [14:17:05] So I'm trying to do it and I have even more questions. (re @Al: For translations, Z4/type is the highest priority, in my opinion. Z20/test cases and Z14/implementations would be the lowest pri...) [14:17:10] https://tools-static.wmflabs.org/bridgebot/aca868c8/file_58458.jpg [14:17:36] When I tap the pencil icon, nothing happens. [14:17:58] Is it because there is a bug? Or because the page is protected or something? [14:19:33] And what are those chips with text in the Bengali script? If I had to guess, it looks more like an alias than a translation, but an alias is supposed to be in English and not in Bengali. [14:21:31] And why do I see this page in English even though my preferences define my UI language as Hebrew? [14:22:43] I’m surprised that you’re surprised, so perhaps I misunderstand your misunderstanding! The WikiLambda extension is for a wiki of functions. If someone wants to use it for their own collection of functions, then they would want some way of testing their functions, which is what the extension provides. The test cases are part of the content for testing the content. Different co [14:22:44] ntent implies different tests. If you don’t have different content, you don’t want the WikiLambda extension, you want a Wikifunctions service (I guess) 🤷‍♂️ (re @amire80: I may be misunderstanding something, but I'm really surprised that something as basic as adding a test depends on content. Like,...) [14:28:58] The pencil should be black and you should be able to edit in a limited way (like adding translations). (re @amire80: When I tap the pencil icon, nothing happens.) [14:31:29] It's kind of like templates. It happened many times that people who know that I'm familiar with MediaWiki call me and ask for help, and the very common scenario is this: they install their MediaWiki because they want something similar to Wikipedia, but with their own topics. The install MediaWiki, they install extensions, and then they discover that for infoboxes, which are a cen [14:31:31] tral feature of Wikipedia, they also need templates, and templates are a thousand times harder to install. It's not even correct to call it "installation"—it's importing, and then fighting to make them actually work. [14:32:22] I don't have statistics, but quite a lot of people give up at that point. [14:36:11] A testing system sounds like a very central feature of a software development environment. Maybe not in 1994, but definitely in 2024. So why is it a part of the site and not a part of the extension? [14:36:53] Both of them are a kind of code, but the extension is much easier to install and to localize. [14:37:25] So is it a bug? (re @Al: The pencil should be black and you should be able to edit in a limited way (like adding translations).) [14:40:57] It just worked for me. I am a mere “Functioneer”, but maybe you need that level of access. A user who is not logged on cannot edit it. (re @amire80: So is it a bug?) [14:44:48] Now it's black and editable. Did anything change, or was it just a glitch? (re @Al: It just worked for me. I am a mere “Functioneer”, but maybe you need that level of access. A user who is not logged on cannot ed...) [14:45:07] Sorry, I don’t see how it can be part of the site today if it is not part of the extension. I’d better leave the question to someone who understands what you get “out of the box”. (re @amire80: A testing system sounds like a very central feature of a software development environment. Maybe not in 1994, but definitely in ...) [14:46:35] Just a glitch, I suppose 🤷‍♂️ (re @amire80: Now it's black and editable. Did anything change, or was it just a glitch?) [14:47:49] What I mean by "part of the site, but not the extension" is that it's defined on the wikifunctions.org site and not in the code of the WikiLambda extension. (re @Al: Sorry, I don’t see how it can be part of the site today if it is not part of the extension. I’d better leave the question to som...) [14:56:11] I understand the distinction you are making. I believe support for Z20/test cases is in the extension. The site provides an interface to the extension. It will be possible to use the extension without the interface, but then you only get what your own interface gives you. (re @amire80: What I mean by "part of the site, but not the extension" is that it's defined on the wikifuncti [14:56:11] ons.org site and not in the code ...) [14:58:53] And why aren't the strings of that interface translated with the extension, but on the site? Like, some strings are translated in the extension, but some are translated on the site, and I don't understand why are they divided the way they are. [15:38:26] In your place, I would raise a Phabricator ticket for the general defect and log each untranslated item in that ticket. Or you could list them in https://www.wikifunctions.org/wiki/Help_talk:Multilingual (re @amire80: And why aren't the strings of that interface translated with the extension, but on the site? Like, some strings are translated i...) [15:46:22] And why, when I edit Z4, is it called "labels" and "short descriptions"? Can there be several of each? I'd think that it's just one. [15:48:46] And can I see a history of that page on mobile web? I don't see a button for that. [15:56:15] One label and/or description per language, yes. I don’t know how you get to it in mobile view but history is https://m.wikifunctions.org/w/index.php?title=Z4&action=history (https://m.wikifunctions.org/w/index.php?title=Z4&action=history&uselang=he, say). (I use desktop view on my mobile.) (re @amire80: And why, when I edit Z4, is it called "labels" and "short descriptions"? Ca [15:56:16] n there be several of each? I'd think that it's just ...) [16:17:59] I guess I can report Phabricator tasks about all these things, but... am I really the first one who sees them and wants to report a bug? [16:23:54] And now I again see a gray pencil that does nothing when I tap it. [16:23:55] [16:23:56] And I see "type" as alias (or label?), but before I see it, I see a flash of some things in the Bengali script. Something is broken. (re @amire80: Now it's black and editable. Did anything change, or was it just a glitch?) [16:24:15] https://tools-static.wmflabs.org/bridgebot/99867a08/file_58463.jpg [16:28:55] @jhsoby , do you maintain the link bot here? Does it have to give links with /en in them? [16:29:17] yeah [16:29:25] And what is that `/view/` part in the URL? [16:29:30] what's the alternative? [16:29:45] that you'll have to ask the wikifunctions developers 😊 (re @amire80: And what is that /view/ part in the URL?) [16:30:30] If you see the Bengali script on that object, I think it’s a browser problem. When I added “type” as an English alias that blocked the fallback to any (a feature or a bug, depending on your point of view). Just my best guess, of course… (re @amire80: And now I again see a gray pencil that does nothing when I tap it. [16:30:31] [16:30:32] And I see "type" as alias (or label?), but before I see it, ...) [16:33:24] `https://www.wikifunctions.org/wiki/Z8` seems to work. (re @jhsoby: what's the alternative?) [16:33:49] It has `/wiki/` and not view, and it has no `/en`. [16:38:08] If I just manually type `https://m.wikifunctions.org/wiki/Z8` on my phone, then: [16:38:10] [16:38:11] * Good: I get the mobile interface (although I'd expect it to be automatic when I type www and not explicit m). [16:38:13] * Bad: I am not logged in. [16:38:14] * Bad: I get those Bengali-script aliases. [16:38:21] https://tools-static.wmflabs.org/bridgebot/ff551de6/file_58465.jpg [16:43:54] I guess you are only logged in where you are logged in. Once you log in again, you should stay logged in (if you ticked that box). There are no English aliases on the Z8, so you fall back to any that exist. Like I said, that is either a feature or a bug, but I don’t think it is an accident! (re @amire80: If I just manually type https://m.wikifunctions.org/wiki/Z8 on my phone, then: [16:43:55] [16:43:56] * Good: I get the mobile interface (although I'd...) [16:50:24] I think that is the more correct external url 🤔 (re @amire80: https://www.wikifunctions.org/wiki/Z8 seems to work.) [16:56:27] Bengali (or is it Assamese?) is as cool as any other language, but I am pretty sure that I am not supposed to see aliases in one other language that is not my UI language or its fallback. Seeing a list of all languages, or the languages I specified in my Babel box, as it is on Wikidata, makes sense. But seeing just one random language doesn't. (re @Al: I guess you are only logged [16:56:28] in where you are logged in. Once you log in again, you should stay logged in (if you ticked that box...) [16:57:53] Hebrew had some aliases on that page, and they completely uh unrelated. I deleted them, and now I see Bengali there 🤦🏻‍♂️ [16:58:53] oh, past me is actually smarter than i thought. The language it uses for links is the one set for the group. So for this group, the language is English, hence /view/en/ links. If we set the group language to Hebrew or Bengali, it would use /view/he/ and /view/bn/ instead. (re @amire80: https://www.wikifunctions.org/wiki/Z8 seems to work.) [16:59:14] You can also override this by using @langcode after the Z# thing. For example: [16:59:14] [16:59:16] Z8@he [16:59:17] Z8@bn [17:03:04] It is being called Bangla in that object. I think it just happens to be the first language it finds after the “en” fallback fails (because it begins with B, perhaps). (re @amire80: Bengali (or is it Assamese?) is as cool as any other language, but I am pretty sure that I am not supposed to see aliases in one...) [17:04:54] I must say that the fallback system of WikiLambda is crappy [17:05:46] When I set interface into one of the variants of Chinese, the fallback just prints other variants [17:06:05] Can’t we just implement the language converter here? [17:07:54] For instance, if I set my interface language to zh-tw, anything not localized into this variant would fallback to simplified Chinese (or another variant) rather than converting directly [17:07:59] It is pretty pointless for aliases in particular, especially if you already have a label or description in a reasonably convenient language. (re @cvictorovich: I must say that the fallback system of WikiLambda is crappy) [17:09:09] (Did I make myself clear? [17:10:05] The result is that we should make an alias for each variant everywhere (re @cvictorovich: For instance, if I set my interface language to zh-tw, anything not localized into this variant would fallback to simplified Chi...) [17:15:42] We don’t want aliases unless they are useful, surely. We certainly don’t want to add aliases just to block fallback. (re @cvictorovich: The result is that we should make an alias for each variant everywhere) [17:16:09] I won’t do so; it’s unhelpful (re @Al: We don’t want aliases unless they are useful, surely. We certainly don’t want to add aliases just to block fallback.) [17:18:11] Each time I don’t know which variant of Chinese should I fill in when creating aliases [17:20:04] Why is it not always the variant you are editing? Or do you mean variants under one Z60? (re @cvictorovich: Each time I don’t know which variant of Chinese should I fill in when creating aliases) [17:21:27] I mainly create English alias (re @Al: Why is it not always the variant you are editing? Or do you mean variants under one Z60?) [17:22:12] For the second case… I chose zh (the default variant [17:22:47] I write simplified Chinese while I use traditional for interface language [17:24:46] Makes sense, so long as it is the “en” variant. That blocks the fallback to a random language. (re @cvictorovich: I mainly create English alias) [17:24:53] But here on WF I adopt English interface as variants listed here is confusing [17:26:04] https://t.me/wikifunctions_zh [17:26:14] FYI. [17:26:45] Wikidata is an exception for me: I adopt French interface language there for manipulating French lexicon data [17:36:39] If it confuses you, you could suggest ways to make it less confusing. I thought the intention was that you could use any language for the interface and then edit in a different language. It seems that you keep having to change the language you are editing in, is that right? (re @cvictorovich: But here on WF I adopt English interface as variants listed here are confusing) [17:37:44] To avoid that I stick to English here (re @Al: If it confuses you, you could suggest ways to make it less confusing. I thought the intention was that you could use any languag...) [17:42:54] Probably something to do with *T344145 🤔* (re @cvictorovich: To avoid that I stick to English here) [19:45:44] https://phabricator.wikimedia.org/T359772 [19:46:39] I tried finding other bug reports about those aliases in random languages and couldn't, so I reported my own. I'm quite surprised that I'm the first one who is bothered by it. [19:49:01] (And look, it's pretty famous that passion about all the languages and support for radical language equality is my brand, but showing essentially random languages is not just useless—it's harmful.) [19:50:23] Of the three questions I've posted above, this is the one that I actually care about most immediately. (re @amire80: 1. Is there something like uselang=qqx to find where exactly do strings like "Select Function" and "Call" come from?) [19:52:56] If you look at https://www.wikifunctions.org/wiki/Z12?uselang=en , where do those English texts under "Contents" come from: [19:52:56] * type [19:52:58] * identity [19:52:59] * keys [19:53:01] * Item 1 [19:53:02] * value type [19:54:40] And so on. How do I find where does each of these strings come from? [19:55:02] On Wikidata, texts of this kind are usually links that lead to the relevant item or property, but here it's just plain text. [20:34:00] Those labels (mostly) come from the definitions of the embedded objects’ types. The label “type”, for example, comes from the Z1@he, which declares that every object has a “key” (a key–value pair, more precisely) and in that key, there is a Z1K1, the label for which, in English, is “type”. I think “Item 1” may be an exception, thinking about it. A Z4@he has a [20:34:01] list of keys, the definition of each of which is Z3@he, but the list itself doesn’t have labels for its elements 🤔 I’ll have to admit defeat on “Item”! (re @amire80: If you look at https://www.wikifunctions.org/wiki/Z12?uselang=en , where do those English texts under "Contents" come from: [20:34:02] * ty...) [20:36:25] It would be very useful to have a mode in which I can directly see the provenance of each of those labels. [20:37:01] For MediaWiki core and extensions messages, we've had uselang=qqx for this since 2010 or so. [20:38:01] Is Wikifunctions reinventing the wheel? [20:39:00] Like, if you are familiar with the general idea of how a MediaWiki site works and how MediaWiki extensions are localized, but you are a beginner with Wikifunctions, how can you know this? (re @Al: Those labels (mostly) come from the definitions of the embedded objects’ types. The label “type”, for example, comes from the Z1...) [20:39:17] _Without_ getting _very_ familiar with Wikifunctions, that is. [20:39:49] I understand that Wikifunctions is special and more complicated than most other extensions, but this wheel reinvention looks exaggerated and unnecessary. [20:40:55] It appears to give up on useful features that MediaWiki has provided to localizers for more than ten years. [21:07:43] "Item 1" is an actual translatable message: https://translatewiki.net/w/i.php?title=Special:Translations&message=MediaWiki%3AWikilambda-list-item-label%2Fhe (re @Al: Those labels (mostly) come from the definitions of the embedded objects’ types. The label “type”, for example, comes from the Z1...) [21:07:49] It is described in https://www.wikifunctions.org/wiki/Wikifunctions:Function_model. That doesn’t explain how the basic model maps more or less directly into the interface, however. In the earlier versions you could see a version of any object without the labels (a light rendering of the JSON objects). I guess the feeling was that this was “unfriendly” so now it’s only hal [21:07:50] f visible in the diffs (and the aspiration is to hide it there too). I’m sure Denny et al. will reflect carefully on your suggestions and we shall make some progress. (re @amire80: Like, if you are familiar with the general idea of how a MediaWiki site works and how MediaWiki extensions are localized, but yo...) [21:08:05] So it's one of the few things there that are easy to find using uselang=qqx :) (re @amire80: "Item 1" is an actual translatable message: https://translatewiki.net/w/i.php?title=Special:Translations&message=MediaWiki%3AWik...) [21:09:11] Ah, that sort of makes sense. Thank you! (re @amire80: "Item 1" is an actual translatable message: https://translatewiki.net/w/i.php?title=Special:Translations&message=MediaWiki%3AWik...) [21:28:18] That’s a great tip, thank you. I’m not going to rush off and do it now, but I don’t mind translating the objects into qqx if that will make for an easier workflow 🤷‍♂️ (re @amire80: So it's one of the few things there that are easy to find using uselang=qqx :)) [23:52:30] https://www.wikifunctions.org/wiki/Talk:Z2 (re @amire80: And why, when I edit Z4, is it called "labels" and "short descriptions"? Can there be several of each? I'd think that it's just ...)