LordSputnik, I was gonna ask about that. Shouldn't we put them in direct-database to avoid all sorts of merge fun (again)?
2015-12-09 34328, 2015
Leftmost
Or should we branch direct-database for the react conversions?
2015-12-09 34355, 2015
regagain_ has quit
2015-12-09 34335, 2015
LordSputnik
Leftmost: well, they have nothing to do with direct-database
2015-12-09 34328, 2015
Leftmost
I'd say branch direct-database then.
2015-12-09 34344, 2015
LordSputnik
But I want to test them in master
2015-12-09 34358, 2015
LordSputnik
Testing in direct-database requires setting up a whole new database :P
2015-12-09 34309, 2015
Leftmost
Alright.
2015-12-09 34300, 2015
LordSputnik
I could make a new branch, cherry pick all the commits up to the react pages to that new branch, cherry pick the react page commits to master, cherry pick all the commits after the react pages to the new branch, then delete the old direct-database?
Leftmost: we could just make it so that entity data can only ever be used by one BBID, and one merging you'd need to create new entity data and a new relationships set - that way, we avoid the issue of changing BBIDs, and can still record BBIDs on the relationship (which I think is also needed)
2015-12-09 34340, 2015
Leftmost
Hmm. Why would we need to record BBIDs on the rel? It doesn't really change how far we have to drill down to display a relationship in the end.
2015-12-09 34343, 2015
LordSputnik
Well, because the source and target BBIDs are a property of the relationship anyway
2015-12-09 34304, 2015
Leftmost
Well, I'd argue that the source and target entities are a property of the rel, whereas BBID is a (mutable) property of the entity.
2015-12-09 34355, 2015
LordSputnik
BBID isn't mutable for an entity though
2015-12-09 34310, 2015
LordSputnik
If it has a different BBID it's a different entity
2015-12-09 34324, 2015
Leftmost
I guess I'm looking at it like "entity B is merged into entity A; entity B's identity hasn't changed, but the BBID referring to it has".
2015-12-09 34321, 2015
Leftmost
The issue I see with creating new relationships is that it means the revision now has to touch every entity related to the changed entity.
2015-12-09 34355, 2015
Leftmost
If entity B is related to entity C, is it really a revision to entity C to merge B into A?
2015-12-09 34312, 2015
LordSputnik
Eww no
2015-12-09 34316, 2015
LordSputnik
OK, so no BBIDs
2015-12-09 34327, 2015
LordSputnik
Now the question is, can we merge RelationshipSet_Relationship and Relationship
2015-12-09 34313, 2015
LordSputnik
If we keep them separate, if we duplicate a RelationshipSet, we need to create a new RelationshipSet_Relationship for each relationship in the set
2015-12-09 34337, 2015
LordSputnik
If we merge them, if we duplicate a RelationshipSet, we need to create a new Relationship for each relationship in the set
2015-12-09 34302, 2015
LordSputnik
In both cases, the amount of storage needed is exactly the same :P
2015-12-09 34320, 2015
LordSputnik
Ah, but if we merge them it does become harder to keep object synchronised, forget that idea :P
2015-12-09 34320, 2015
Leftmost
I think keeping them separate is better, personally, though I don't know why right now. :-P
I was thinking about i18n last night. Template strings _almost_ get us everything we need for gettext. So close, but not there. :\
2015-12-09 34337, 2015
ariscop joined the channel
2015-12-09 34356, 2015
LordSputnik
Leftmost: what do you mean? I'm unfamiliar with the dark arts of i18n ;)
2015-12-09 34327, 2015
zas
I18n even worse one may think at first. :)
2015-12-09 34349, 2015
zas
But that's still better than to force the rest of the world to speak and write french ;)
2015-12-09 34351, 2015
Leftmost
For proper i18n you need to be able to rearrange the contents of a string, so concatenation doesn't work. You need to be able to translate the string as a whole. Tagged templates allows that. However, in order to do this you often need to be able to rearrange _parameters_. You can technically do that with tags, but there's no way to access which parameters are which in the original, so you don't know how to rearrange, and you'd also
2015-12-09 34351, 2015
Leftmost
have to do the parsing work for what's a parameter in the translated string.
2015-12-09 34319, 2015
Leftmost
You can return functions from tags, and you could presumably do it with those, but you'd end up with something gross like __`${'soandso'} published ${'suchandsuch'}`({ soandso: 'FooBooks', suchandsuch: 'Foo Guide to Bartending' }).
Plural handling and parameter rearrangement are the top reasons I like gettext, because I have yet to see another i18n framework that gets it even as right as they do.
2015-12-09 34355, 2015
Leftmost
LordSputnik, are you working on updating the SQL? I'll do it if not.
2015-12-09 34316, 2015
zas
Leftmost: i agree gettext does a better job with plurals than most other stuff around. Apart few cases it covers i18n issues quite well.
2015-12-09 34321, 2015
Leftmost
It's definitely not perfect, but everything else I've looked at fails in a lot of cases where gettext succeeds.
2015-12-09 34327, 2015
Leftmost
LordSputnik, stanislas is asking for some insights into the calibre task. Thought you might have a better idea of the calibre side.
2015-12-09 34302, 2015
Leftmost
stanislas, is there anything in particular you're having trouble with or just hoping for a general picture?
(the endpoint is simple to use, that is, not the task)
2015-12-09 34332, 2015
stanislas
yeah, but googling bookbrainz api wasn't succsesful
2015-12-09 34337, 2015
stanislas
thanks
2015-12-09 34310, 2015
LordSputnik
So you'll probably want to query the webservice several times. First to the /search endpoint, to get results, then once for each of the results, with the /entity/:bbid endpoint
2015-12-09 34337, 2015
LordSputnik
stanislas: yeah, our documentation is fairly rubbish I'm afraid, it's on the list of things to-do, but that's a very long list!
2015-12-09 34321, 2015
stanislas
i've little knowledge of js, so i will try to figure something out
Please let us know if you have any more questions!
2015-12-09 34312, 2015
stanislas
LordSputnik: thanks, i will need it
2015-12-09 34316, 2015
stanislas
:)
2015-12-09 34333, 2015
Leftmost
We're here to help. Sorry I couldn't be of more use on getting you started. :)
2015-12-09 34335, 2015
LordSputnik
Leftmost: so what is the interface to gettext?
2015-12-09 34353, 2015
LordSputnik
format.js looks quite nice because it comes with React integration
2015-12-09 34326, 2015
LordSputnik
And what's wrong with the pluralisation there?
2015-12-09 34342, 2015
Leftmost
It depends on that same zero/one/two/few/many/other paradigm.
2015-12-09 34326, 2015
LordSputnik
Is the handling of parameters any better in format.js than gettext?
2015-12-09 34320, 2015
regagain_ joined the channel
2015-12-09 34309, 2015
Leftmost
In C, you'd often do something like (as an example) sprintf(_("This is a string: %s"), inserted_str), where _() is the gettext wrapper. For plurals, sprintf(N_("There is %d message", "There are %d messages", n), n), where N_ is the plural gettext wrapper.
2015-12-09 34312, 2015
Leftmost
Gettext parameter handling is generally fine. It's JavaScript's lack of anything sprintf-like that causes problems.
2015-12-09 34333, 2015
LordSputnik
Well, JavaScript does have template strings now
2015-12-09 34307, 2015
Leftmost
Right, but you can't manipulate them directly, only declare them as a literal.
Still need to do identifiers, aliases, and relationships.
2015-12-09 34342, 2015
Freso
reosarevok: Seems like you've been on top of the account creations.
2015-12-09 34345, 2015
Freso
!m reosarevok
2015-12-09 34346, 2015
BrainzBot
You're doing good work, reosarevok!
2015-12-09 34312, 2015
Freso
I'll be going to bed early tonight, which OTOH probably means I'll be up early in the morning.
2015-12-09 34316, 2015
Freso
G'night y'all.
2015-12-09 34311, 2015
reosarevok
Sleep well :)
2015-12-09 34326, 2015
reosarevok
thanks bitmap :)
2015-12-09 34337, 2015
bitmap
np
2015-12-09 34311, 2015
reosarevok
alastairp: I guess Sertan will see from the ticket, but added now
2015-12-09 34342, 2015
chirlu`
Leftmost: Ah, I looked closer into the plperl issue, and it *is* there after all, but it needs recompiling.
2015-12-09 34310, 2015
chirlu`
It links to libperl.so.5.10, which is no longer there because there is an updated perl now.
2015-12-09 34321, 2015
Leftmost
chirlu`, okay. I'll figure out how to get it compiled
2015-12-09 34322, 2015
Leftmost
.
2015-12-09 34313, 2015
stanislas has quit
2015-12-09 34306, 2015
opatel99 joined the channel
2015-12-09 34325, 2015
opatel99
If I change a string in Picard, how do I ensure all the language files update it as well?
2015-12-09 34314, 2015
Leftmost
Picard is set up in such a way that if a string changes, the translators will be able to automatically pull in those changes and make the appropriate adjustments to their translation.
Ok, then is http://tickets.musicbrainz.org/browse/PICARD-692 a simple text change? I am not aware that Picard is able to read the registry for alternative operating systems to read the default music player, and additionally pull in icons as well...
2015-12-09 34320, 2015
Mineo
it uses some Qt api to automatically open the file in whatever player the user has configured
2015-12-09 34300, 2015
Mineo
and yes, all that's required for that ticket is to change the text and update the translation source file :)
2015-12-09 34323, 2015
opatel99
I am intrigued about how the Transifex works. Once the pot file is uploaded, the Transifex server performs a pull request daily to update any changes throughout all languages?