Here's something else.

Search posts
Forum index

 

Orinoco -

Here's something else.

One of the major features of a certain former popular juggling portal was of course it's multilingualness.

So in homage to Juggling Universe I proudly present the traduzione Italiana!1

At present the languages available for translation are:

https://de.jugglingedge.com - German
https://es.jugglingedge.com - Spanish
https://fr.jugglingedge.com - French
https://it.jugglingedge.com - Italian
https://nl.jugglingedge.com - Dutch
https://ru.jugglingedge.com - Russian (3 plural forms, really?!)

Other languages will be made available on request.

At the bottom of each page you will find a 'translate this page' link that takes you to a form where you can enter translated text & access the audit history of previous changes so if someone makes a mistake they can access previous translations to correct it. Anyone with an account can contribute a translation.

I have purposefully not included any indications of translation 'progress'. The Edge is huge. Most of it doesn't need translating for the site to be usable. I have no desire to put pressure on anyone to put hours of unnecessary work in for some arbitrary notion of completeness. The only gamification I want to encourage involves dice, cards & meeple.


The tranlsation index shows all pages available for translation & also contains links to edit texts that are stored in a database rather than part of a page. These texts are the strings used in the spangly new records system, email templates & latest content templates that appear in the latest content feed on the homepage.


Some translatable texts will include variables, these will look $SomethingLikeThis in the original text (clicking the variable will insert the variable text at the cursor in the input field). The variable will be replaced with specific information when the page is rendered.

For example the following:

New post by $UserName

Will be converted to something like:

New post by Orinoco

Variables are case sensitive


Texts will also contain links. Available links will be described in blue underneath the input field. To specify what part of the text you want to be clickable surround it with the link's corresponding numerical tags. If you select text in the input field then click the desired link the system will automatically insert the tags for you.

For example the following:

New <1>post</1> by <2>$UserName</2>

Will be converted to something like:

New post by Orinoco


The whole thing is very complicated. Some of you have already noticed that I've been breaking lots of things recently, all of them were to do with this! I'm sure there will be more problems. I will fix them as soon as I can.


Boring nerdy stuff: I've written my own translation system that basically maintains multiple versions of the same dynamic site, one for each language. I've done this instead of using GNU gettext for several reasons:

  • Gettext only works on php files, it can't handle static text, javascript or html files unless you decrease performance by using php to write those files dynamically.
  • I'd have to rewrite all the php code to include the gettext functions. My system works independently of the files being translated & allows me to continue to write plain readable (to me at least!) code.
  • Using gettext the server has to load the php, load the language file & parse them together on each page request. In my system we only need to load & parse the php, the grunt work for getting the right text in the right place is done only once at the point you save a new translation. The non-English pages will always be as fast as the English pages.
  • Not specific to my translation system but using subdomains for language information means I can provide a multilingual site without needing to use cookies to store language preferences for logged out users or slowing down everything by including &Language=Klingon in every URL.



#NewFeature


1 I've been working on this for 5 months just to get that punchline in.

The Void - - Parent

That must have been a lot of work. Well done, and thanks.
Now, can anyone translate "tranlsation" for me? :-P

7b_wizard - - Parent

Great! That is awesome, I like when it's international.

5balls - - Parent

Great! I suppose you decided consciously against it and know about it, but just in case you are not aware: There is also the possibility to do language negotiation without using subdomains, GET/POST variables or cookies:

https://www.w3.org/International/questions/qa-apache-lang-neg

I use this for our juggling club webpage (although I want to add a link to the other translations at the bottom of the page in case people have not set up their browser properly):

https://www.jonglaria.org

(Start page should appear in english for most people here, in case you have your browser set up to prefer german language webpages it will show it in german - typically this is set correctly in case your operating system is set up in german - you can play around changing browser settings and reloading the page)

Orinoco - - Parent

I was not aware of that Apache feature. Thank you for the tip. Reading through the documentation though I think I still prefer using separate sub domains. I prefer the transparency of showing the language right at the start of the url rather than picking a language from a setting hidden in the browser which I think a lot of people would not be aware of, especially if they using someone else's device.

Julien_H - - Parent

I've started to work on the french translation! Let me know if i'm breaking everything or actually doing useful work!

Orinoco - - Parent

That is wonderfully useful thank you!

Daniel Simu - - Parent

I've done 2 pages, I doubt any Dutch person will ever care, but it's fast and easy to do so I don't mind to translate a few more...
Now I've started at the top which is probably not the most effective, could you give a list of what you think are the 5 or 10 most important pages of the site?

Orinoco - - Parent

Thank you! & glad to hear it is easy to use.

I've always considered getting people to juggling festivals to be the most important thing so personally I think the most important pages to translate are:

libdb.php - a library that is used on every page, includes the primary navigation menu
event.php
events.php
libdir.php - a library that is used across all directory section pages (events, clubs, groups)
contact.php


The order of popularity of all the sections on the Edge are pretty consistently:

forum - but given that pretty much all posts are currently in English (this does not have to be the case!1) I don't see there is much reward from translating this section.
events
clubs
records
logs


1 I think this is the closest we've come to a multilingual thread but I'm not sure it really counts.

Daniel Simu - - Parent

The top menu on https://nl.jugglingedge.com/ is now broken, probably happened after I changed the text..

Orinoco - - Parent

Now fixed, I just added the <1>numerical link tags</1> around the text that needed it.

Daniel Simu - - Parent

Right, I didn't read the instructions carefully enough to remember that I had to put those tags around. Maybe as a fix all, put the link automatically around all text if there is no link specified? Or put a one line reminder that the tags go around the links on every translation line?.. hmm....

Ilia Poliakov - - Parent

I translate some pages.
I hope, it will help for russian jugglers.
if they will open site, it will be automatically in russian?

For me it is very unuseful when after "Save Changes" this page close and it goes to list of pages.
And also it would be great to see pages that are translated and sort texts on one page that don't have any translation.
Also I don't understand this system with links. Mostly whole text is a link or not a link. And you can do it automatically.

Orinoco - - Parent

Thank you very much for the translations. If visitors open the Russin site (https://ru.jugglingedge.com) they will see your translations.

I've just changed the system so that you are redirected to the page you have just translated, & for texts where there is only link & you haven't specified a portion of the text to be clickable it will now automatically add the tags around the whole text for you.

Ilia Poliakov - - Parent

Nice! You are really fast

Ilia Poliakov - - Parent

Please, ix this problem:
https://ru.jugglingedge.com/events.php - after I did translation it shows wrong.
https://ru.jugglingedge.com/profile.php?UserID=761 - I can't translate words Organiser and Attendie

Orinoco - - Parent

Oops, events page now fixed.

Those translatable words are in one of the linked files, specifically libDir.php. At the top of the edit translation page there are links to translate all other files that that page depends on.

Ilia Poliakov - - Parent

https://ru.jugglingedge.com/forum.php
have some problem with space between words. Please, write all things like "reply" and "bookmark" separately and put punctuation marks "-" automatically.
Also I don't see where to translate this:
Previous unread
-Next unread
-Mark thread as read

Orinoco - - Parent

I've added the missing spaces in for now. I will see if I can work out a way for the system to do that automatically.

That unread text can be translated here. I've just realised the source javascript files that contain the text won't appear in the list of linked files because I use an automated routine to create composite files from the source files depending on the user's selected options. It will take me a while to work out how to fix that.

Ilia Poliakov - - Parent

Something going wrong in translated site.
Don't open pages like Clubs and Profile.
Don't show some info on Main Page, can't add new record.

Orinoco - - Parent

Should all be fixed now. Sorry for the inconveniences.

York Jugglers - - Parent

This is amazing, thank you for all the work you have put into this.

We were looking at the German translation (we are hoping to establish links with the juggling club in our city's twin town) specifically https://de.jugglingedge.com/club.php?ClubID=12

We noticed there seems to be something amiss with the location of the club in the translation, because in English JugglingEdge, we have:
JuggleSoc - 1.1 miles
Hullabaloo - 28.8 miles
Teapots - 45.6 miles
Lincoln Juggling Society - 57.5 miles

but in German JugglingEdge, we have:
Nottingham Juggling Club - 10,4 miles
FEVER - 20 miles
Leicester Jugglers - 26,3 miles
Lincoln Juggling Society - 28,8 miles
Teapots - 36,9 miles

Which, by triangulation, places us halfway between Nottingham and Newark.

Ii also might be useful for non-British (excluding their colonies) to have the distances in kilometres as well as miles eg: "JuggleSoc - 1.1 miles (1.8km)", (putting both for every language is presumably easier than having to workout which unit of measurement each language might use (and some languages might use both).

Ilia Poliakov - - Parent

Russia uses only metric system, thanks if you will make it

York Jugglers - - Parent

Oh, and the links:
"Liste von Jongliervereinen > UK‎" ("Juggling club listings > UK‎")
"Importieren via iCalendar: Nur dieses Treffen oder Nächste 10 Treffen" ("Import via iCalendar: This meeting only or Next 10 meetings")
"Fügen Sie Daten hinzu an denen der Verein sich nicht trifft" ("Add dates when this club will not be meeting")
"Verschiebe Kartenmarkierung" ("Reposition map pin")

don't seem to work yet on the German translation page of our listing

and the location link

"St Lawrence Church Hall, Lawrence Street, York, YO10 3WP, UK." which on the original English languge version goes to
https://maps.google.com/maps?q=loc:53.954594,-1.068456&z=17&t=m
in the German translation goes to
https://maps.google.com/maps?q=loc:53,-1&z=17&t=m - so it looks like the problem might be the translation is rounding the latitude and longitude down to the nearest whole number.(this might be why the nearest clubs is also wrong in German)

5balls - - Parent

Oh, sorry, I screwed the links up in the german translation. It seems Orinoco fixed those now?

Orinoco - - Parent

I wouldn't say screwed! I put the links back in last night. Going forward the automatic linking suggested by Illia will mean this isn't an issue. I partially fixed the coordinates problem too which was related to a difference in what PHP thinks is a number & what MySQL thinks is a number.

Giocoleria da diporto - - Parent

Hi Orinoco, I was editing one of the Italian pages (that one of the forum) when, when I went to save, it gave me a 500-error and since then it no longer lets me enter on that page with the Italian subdomain, but only with the others.
Even deleting the cookies does not change anything: what can I do? Thank you!


Two more questions about index.php page entries:

1 - «$StartDate to $EndDate» has the to but no from, why?
2 - «+ $MoreEventsCnt more over the next 3 months» I interpreted that «+» as an integral part of the text and I think it stands for «+ n more events in the next 3 months»: is it correct?

Orinoco - - Parent

Hello, the first issue was an errant ' character in my code which is now fixed. Sorry about that.

1. The $StartDate to $EndDate text is from the My events section which displays the name & start/end dates of any upcoming multi-day events you are going to that would appear like this:

British Juggling Convention 2023
2023-04-07 to 2023-04-13

I didn't put a from in just to conserve space, but there is no reason not to use da in the Italian version


2. Yes you are correct, the '+' sign is part of the sentence.

grazie mille per i molti traduci!

Giocoleria da diporto - - Parent

New question: do I have to translate the ".RecordMeta{display:none;}" on the Records page? :?

Orinoco - - Parent

Nope!

Giocoleria da diporto - - Parent

Hello Orinoco, what do you think of the possibility of reducing the list of States reported on the site, for example by removing the Overseas Territories, and leaving only the internationally recognized sovereign States (all those present in the UN, including the two permanent observer States, as well those with significant international recognition, such as: Kosovo, Taiwan and Western Sahara)?

I too love precision, so much so that I am also adapting to Italian phonotaxis names of States that we Italians do not normally adapt, but perhaps keeping Antarctica on the list (which is never permanently inhabited) is a bit too much 😄

The Void - - Parent

Isn't it? https://brr.fyi

Orinoco - - Parent

I just had a quick look at this, & identified 32 overseas territories/autonomous states/administrative regions/many other complicated named types of region, which doesn't thin the list down too much.

While doing this I noticed a bigger problem that I hadn't thought of before. The translated list of countries remains in alphabetical order for the English names rather than the new translated list which is a big usability issue! The list of countries is currently hardcoded to cut down on an extra database query because countries don't tend to change much (although hello Yugoslavia!). I will need to write a custom script for handling translating country names that lives outside the rest of the translation system similar to the record texts, email templates & latest content templates which is going to take me a little while.

In the meantime I've just done a load of Google translating of the remaining untranslated countries because it seemed helpful!

Orinoco - - Parent

Lists of countries have now all been auto translated into & will now be displayed in the correct alphabetical order for all languages options! :)

Mïark - - Parent

Congratulations on your translating, I don't speak Italian, but https://it.jugglingedge.com/ is looking more and more complete.

Antarctica the continent which consists of the Antarctic landmass (icemass?) and another ~10 islands, I think is the pole which has seen the most juggling; a short google search can find you many photos/videos of people juggling in Antarctica (eg https://adam.antarcticanz.govt.nz/nodes/view/28991 ). Antarctica is permanently inhabited; eg at McMurdo Base or Villa Las Estrellas Base or even the Amundsen–Scott South Pole Station. A lot of countries are maintaining a presence ready for the fight for who owns which mineral rights. So with all those people enduring long dark winters perhaps they will decide to juggle and maybe one day host a juggling get-together.

Regarding translating the county names, maybe just translate the ones that speak Italian or border Italian-speaking countries. The top 5 countries represent 70% of the events listed (my guess of countries with most events so far this year: 1st USA 31 events, 2nd Germany 22 events, 3rd UK 17 events, 4th France 11 events, Equal-5th Australia, Belgium, Italy, Switzerland 5 events) so maybe just translate the most popular countries. That isn't to say more juggling events don't happen in other countries those are just the ones that are listed on Juggling Edge (rather than a clip of part of a poster on instagram).

Giocoleria da diporto - - Parent

Hi Orinoco,
if I translate the entry «No data tagged $Labels» of the chart.php file and save, I get the error: «$Labels does not exist in the original text».

Is there something to fix or is it my fault?

Orinoco - - Parent

There is always something to fix! It is always safe to assume if something has gone wrong here it is my fault & not yours.

This problem should be fixed now!

Thank you for all you work translating, correcting my errors & finding problems for me to fix! Your efforts are helping to improve the site for everyone.

Giocoleria da diporto - - Parent

Here, too, there is something to fix: club.php. Thanks!

Mïark - - Parent

What is wrong on club.php ?

I noticed the iacute on the day of the week is not rendering too well, as in

https://it.jugglingedge.com/club.php?ClubID=49

Is there something else?

Orinoco - - Parent

If the problem is the double encoded day of the week, this is now fixed.

Giocoleria da diporto - - Parent

" View all threads tagged with #'.htmlentities($Club['Tag'],ENT_QUOTES), "

is it correct? Can i translate with:

" Visualizza tutte le discussioni etichettate come #'.htmlentities($Club['Tag'],ENT_QUOTES), "?

Orinoco - - Parent

Not quite correct no! That's another error in my code. Now fixed & translated thank you!

Giocoleria da diporto - - Parent

clubmap.php:

"or drag the search duck to somewhere on the map then click search."

What does "search duck" mean? Thank you.

Mïark - - Parent

"Search Duck" is the duck who helps you search.

on https://jugglingedge.com/clubmap.php

If you click on the blue text Search Duck a duck icon (on red background) appears on the map; this duck icon can be dragged to the part of the map you want to search for juggling clubs near

Orinoco - - Parent

Yes, one of those things that I thought was funny at the time, but perhaps something a little more functional might be more appropriate now the Edge is multilingual!

Mïark - - Parent

I speak no Italian, but would anatra di cerca (finding though not killing) or anatra utile make sense?

The duck is helping you search, you are not searching for ducks

Giocoleria da diporto - - Parent

Connection.php: what "clubs" and "groups" stand for, in this context?

Elsewhere there are only (juggling) "clubs": this is the first occurrence of "groups".

They are both translatable with "gruppi" in italian, but it depends on the meaning...

Thanks.

Mïark - - Parent

Clubs refers to regular meet ups eg weekly meetings.

Groups are either organisations eg IJA, or EJA; or just a team that organise a juggling event every year (a regular festival is one that re-occurs at regular intervals - the advantage of having a group on Juggling Edge for a festival is that is that if google takes you to a past festival listing there can be a link to the next (future) occurrence of that event eg www.jugglingedge.com/event.php?EventID=3060 )

See Groups page for examples, www.jugglingedge.com/groups.php

 

Subscribe to this forum via RSS
1 article per branch
1 article per post

Forum stats