XSF Discussion - 2019-07-27

  1. Neustradamus has joined

  2. Neustradamus has left

  3. winfried has left

  4. Neustradamus has joined

  5. winfried has joined

  6. arc has left

  7. arc has joined

  8. Neustradamus has left

  9. remko has joined

  10. Neustradamus has joined

  11. arc has left

  12. arc has joined

  13. Neustradamus has left

  14. Neustradamus has joined

  15. remko has left

  16. pdurbin has joined

  17. Neustradamus has left

  18. Neustradamus has joined

  19. moparisthebest has left

  20. moparisthebest has joined

  21. UsL has left

  22. UsL has joined

  23. pdurbin has left

  24. stpeter has joined

  25. peter has joined

  26. peter has left

  27. Lance has left

  28. stpeter has left

  29. wurstsalat has left

  30. APach has left

  31. APach has joined

  32. lumi has left

  33. neshtaxmpp has left

  34. neshtaxmpp has joined

  35. adityaborikar has left

  36. adityaborikar has joined

  37. pdurbin has joined

  38. Neustradamus has left

  39. remko has joined

  40. adityaborikar has left

  41. remko has left

  42. adityaborikar has joined

  43. winfried has left

  44. winfried has joined

  45. winfried has left

  46. winfried has joined

  47. Yagiza has joined

  48. moparisthebest has left

  49. moparisthebest has joined

  50. patrick has left

  51. Douglas Terabyte has left

  52. remko has joined

  53. Douglas Terabyte has joined

  54. karoshi has joined

  55. wurstsalat has joined

  56. remko has left

  57. Yagiza

    It seems I fixed everything.

  58. Yagiza

    Now OMEMO works all right in my client!

  59. pdurbin has left

  60. pdurbin has joined

  61. lskdjf has joined

  62. lskdjf has left

  63. Mikaela has joined

  64. lskdjf has joined

  65. remko has joined

  66. arc has left

  67. arc has joined

  68. lovetox has left

  69. lskdjf has left

  70. lskdjf has joined

  71. larma has left

  72. lnj has joined

  73. larma has joined

  74. Yagiza has left

  75. Nekit has joined

  76. dragonspirit810 has joined

  77. debacle has joined

  78. jcbrand has joined

  79. andy has joined

  80. adityaborikar has left

  81. andrey.g has left

  82. dragonspirit810 has left

  83. andrey.g has joined

  84. adityaborikar has joined

  85. lovetox has joined

  86. lovetox has left

  87. adityaborikar has left

  88. adityaborikar has joined

  89. remko has left

  90. remko has joined

  91. neshtaxmpp has left

  92. neshtaxmpp has joined

  93. Dele (Mobile) has joined

  94. remko has left

  95. Dele (Mobile) has left

  96. Dele (Mobile) has joined

  97. Dele (Mobile) has left

  98. Dele (Mobile) has joined

  99. Dele (Mobile) has left

  100. dele2 has joined

  101. dele2 has left

  102. Dele (Mobile) has joined

  103. Dele (Mobile) has left

  104. debacle has left

  105. Dele (Mobile) has joined

  106. pdurbin has left

  107. lumi has joined

  108. lovetox has joined

  109. Dele (Mobile) has left

  110. Dele (Mobile) has joined

  111. Dele (Mobile) has left

  112. Dele (Mobile) has joined

  113. Dele (Mobile) has left

  114. marc_ has joined

  115. igoose has left

  116. igoose has joined

  117. dele2 has joined

  118. lnj has left

  119. lnj has joined

  120. lovetox has left

  121. lumi has left

  122. Yagiza has joined

  123. remko has joined

  124. remko has left

  125. remko has joined

  126. pdurbin has joined

  127. dele2 has left

  128. adityaborikar has left

  129. adityaborikar has joined

  130. lumi has joined

  131. pdurbin has left

  132. Douglas Terabyte has left

  133. Douglas Terabyte has joined

  134. vanitasvitae has left

  135. vanitasvitae has joined

  136. lumi has left

  137. lumi has joined

  138. lumi has left

  139. waqas has joined

  140. eevvoor has joined

  141. Link Mauve

    “20:49:04 Zash> Actually, you can probably add tags in a custom namespace if you want”, clients will parse the namespaces into their internal structures, then serialise them back without including your extensions, sorry.

  142. Link Mauve

    If you want do extend your bookmarks, you’ll have to use another private PEP node.

  143. pdurbin has joined

  144. marc_ has left

  145. andy has left

  146. pdurbin has left

  147. jonas’

    unless bookmarks 2 or something specifies that stuff needs to be kept :)

  148. intosi has left

  149. intosi has joined

  150. Link Mauve

    jonas’, as far as current implementations are concerned, Bookmarks 2 doesn’t exist.

  151. pdurbin has joined

  152. pdurbin has left

  153. Ge0rG

    jonas’: keeping unknown elements in a structure that you have to parse is a nasty cross layer challenge.

  154. waqas has left

  155. Yagiza has left

  156. zach has left

  157. Seve has left

  158. Vaulor has left

  159. Seve has joined

  160. Vaulor has joined

  161. Douglas Terabyte has left

  162. lovetox has joined

  163. Yagiza has joined

  164. Yagiza has left

  165. pdurbin has joined

  166. lovetox

    yeah and i would rather not rely on other clients not overwritting my custom elements

  167. lovetox

    Using a private pep node for that, you dont need to change a xep, you dont need to rely on other clients, you can implement it right now, and it will just work

  168. lovetox has left

  169. Mikaela has left

  170. Mikaela has joined

  171. Mikaela has left

  172. Mikaela has joined

  173. pdurbin has left

  174. Steve Kille has left

  175. andy has joined

  176. adityaborikar has left

  177. Nekit has left

  178. lovetox has joined

  179. lumi has joined

  180. COM8 has joined

  181. COM8 has left

  182. Mikaela has left

  183. Mikaela has joined

  184. COM8 has joined

  185. waqas has joined

  186. COM8 has left

  187. COM8 has joined

  188. COM8 has left

  189. COM8 has joined

  190. COM8 has left

  191. COM8 has joined

  192. COM8 has left

  193. Yagiza has joined

  194. COM8 has joined

  195. Yagiza has left

  196. Zash

    Where do I send patches for the website?

  197. Zash

    editor@xmpp.org or somesuch?

  198. COM8 has left

  199. Link Mauve

    Zash, that should be fine, or you could use GitHub and send a pull request.

  200. Link Mauve

    Editor will be the one merging it in the end.

  201. COM8 has joined

  202. Zash

    I don't feel like interacting with github today, and I strongly believe that it should not be required.

  203. Link Mauve

    Especially now that it’s impossible for people living in countries the USA considers as enemies.

  204. Zash

    Well the XSF is incorporated in the US so that point might be moot :/

  205. Link Mauve

    The XSF isn’t enforcing that ban on any of its infrastructures, AFAIK.

  206. Link Mauve

    GitHub is, since a few days ago.

  207. Zash

    Maybe this merely reminded me to exercise the non-github patch submission path :)

  208. Link Mauve


  209. COM8 has left

  210. Yagiza has joined

  211. COM8 has joined

  212. Yagiza has left

  213. COM8 has left

  214. COM8 has joined

  215. Neustradamus has joined

  216. COM8 has left

  217. zach has joined

  218. COM8 has joined

  219. APach has left

  220. APach has joined

  221. Nekit has joined

  222. COM8 has left

  223. murabito has left

  224. murabito has joined

  225. Neustradamus has left

  226. Neustradamus has joined

  227. COM8 has joined

  228. COM8 has left

  229. COM8 has joined

  230. COM8 has left

  231. COM8 has joined

  232. COM8 has left

  233. winfried has left

  234. Neustradamus has left

  235. COM8 has joined

  236. COM8 has left

  237. Ge0rG

    Zash: how do you obtain a copy of the repository without interacting with github?

  238. COM8 has joined

  239. COM8 has left

  240. COM8 has joined

  241. COM8 has left

  242. Neustradamus has joined

  243. lnj has left

  244. Zash

    Ge0rG: Magic already existing local clone.

  245. Zash

    https://xmpp.org/about/technology-overview.html#pubsub has a broken link to what I assume was a local render of https://tools.ietf.org/html/draft-saintandre-atompub-notify-07

  246. Zash

    What's the relation of that and XEP-0277 (or is it 227? I always mix those up)

  247. COM8 has joined

  248. Neustradamus has left

  249. COM8 has left

  250. COM8 has joined

  251. COM8 has left

  252. COM8 has joined

  253. COM8 has left

  254. COM8 has joined

  255. COM8 has left

  256. eevvoor

    hope we can use salut a toi one day to send patches via xmpp :)

  257. Ge0rG

    Store your code in PubSub, not in GitHub!

  258. Link Mauve

    I just got into an argument with someone arguing that XMPP shouldn’t be able to send/store files, even though that was just HTTP. :(

  259. Ge0rG

    XMPP shouldn't be using HTTP for sending files.

  260. COM8 has joined

  261. Link Mauve


  262. COM8 has left

  263. Link Mauve


  264. COM8 has joined

  265. COM8 has left

  266. COM8 has joined

  267. COM8 has left

  268. COM8 has joined

  269. COM8 has left

  270. COM8 has joined

  271. COM8 has left

  272. COM8 has joined

  273. lovetox

    hm if set stream lang to german

  274. COM8 has left

  275. lovetox

    i should not have to add this to presences if i join a muc or?

  276. COM8 has joined

  277. COM8 has left

  278. Zash

    In theory

  279. Zash

    Which server?

  280. lovetox


  281. lovetox

    Zash what does this mean if i set xml:lang=de, and prosody answers me with xml:lang=en

  282. lovetox

    is the lang set on each direction of the stream separate?

  283. Zash

    I don't know. Prosody doesn't do anything with xml:lang

  284. Link Mauve

    lovetox, yes, each direction is separate.

  285. lovetox

    it does, because it sets it to en :D

  286. lovetox

    Zash i hope it adds whatever xml:lang i set to whatever stanza it routes to other servers

  287. Zash


  288. Zash

    It does *nothing* with xml:lang

  289. lovetox


  290. Link Mauve

    But yes, the server SHOULD (IIRC) add the stream’s @xml:lang on each outgoing stanza if you haven’t set one already.

  291. Zash

    Except if it's set on a presence stanza that creates a MUC it uses that as default language in the MUC config

  292. lovetox

    Is there a particular reason prosody ignores stream xml:lang attr?

  293. Link Mauve

    Ah no, it’s not a SHOULD it’s a MAY.

  294. Link Mauve

    “If the initiating entity included the 'xml:lang' attribute in its initial stream header, the receiving entity SHOULD remember that value as the default xml:lang for all stanzas sent by the initiating entity over the current stream. As described under Section 8.1.5, the initiating entity MAY include the 'xml:lang' attribute in any XML stanzas it sends over the stream.”

  295. COM8 has joined

  296. Link Mauve

    lovetox, it’s allowed in 6120.

  297. COM8 has left

  298. Link Mauve

    Section 4.7.4.

  299. COM8 has joined

  300. COM8 has left

  301. COM8 has joined

  302. COM8 has left

  303. lovetox

    no its a SHOULD for the server

  304. Link Mauve

    Ah right, I misread.

  305. COM8 has joined

  306. Zash

    Link Mauve, Wait inheritance is not mandated by XML itself?

  307. winfried has joined

  308. COM8 has left

  309. Link Mauve

    Zash, stanzas are sent to other entities than your server, so that wouldn’t be enough.

  310. lovetox

    Zash, im aware that prosody does not provide translations

  311. COM8 has joined

  312. lovetox

    but other servers do, and it would be nice if prosody adds whatever stream xml:lang i set, to outgoing stanzs

  313. Neustradamus has joined

  314. COM8 has left

  315. COM8 has joined

  316. COM8 has left

  317. COM8 has joined

  318. COM8 has left

  319. Zash

    Nobody has written code that does that

  320. COM8 has joined

  321. Ge0rG

    I'm surprised that this is not a MUST in the standard.

  322. Link Mauve


  323. Ge0rG

    I've just added xml:lang to yaxim yesterday.

  324. flow

    What would make a MUST better here?

  325. Link Mauve

    flow, clients wouldn’t have to copy it manually on each stanza.

  326. flow

    I assume we are talking about the first SHOULD in the quote link posted

  327. Link Mauve

    I wasn’t aware of this particular issue.

  328. flow

    Link Mauve, well a SHOULD is already pretty strong. I usually read it as "you have to do it, unless all invovled parties aggreed on something else"

  329. flow

    That way, you could write a simpler service implementation, use it in a, more or less closed, envrionment, where that requirement is not needed by every involved party and still claim standard compliance

  330. Ge0rG

    > If an outbound stanza generated by a client does not possess an 'xml:lang' attribute, the client's server SHOULD add an 'xml:lang' attribute whose value is that specified for the client's output stream as defined under Section 4.7.4.

  331. COM8 has left

  332. Ge0rG

    This is §8.1.5

  333. Link Mauve

    flow, I actually read MUSTs that way, as long as both entities agree they can do otherwise.

  334. Ge0rG

    Inheritance of xml:lang is a huge can of worms.

  335. flow

    I know that endless discussion have already take place about that topic at various venues :)

  336. flow

    Link Mauve, so what makes a SHOULD different from a MAY and from a MUST in your book?

  337. Ge0rG

    I'm sure there were.

  338. Ge0rG

    flow: prosody developers will implement MUST on request.

  339. Link Mauve

    Ge0rG, SHOULD too.

  340. Ge0rG

    Link Mauve: not in my experience.

  341. Link Mauve

    flow, hmm, SHOULD is more like, it’s possible to not implement it that way if you can’t, for a good enough reason.

  342. Link Mauve

    And MAY, do whatever you want.

  343. flow

    ack on MAY

  344. flow

    but I guess if we ask enough people we sure get two contradictory statements on that too ;)

  345. Link Mauve

    Yeah. ^^'

  346. flow

    It feels like your SHOULD interpretation is not so far away from mine

  347. flow

    so in my book, MUST is something that you can not just not follow, as otherwise some very important aspect will fall apart

  348. flow

    like "MUST be initialized with a CSPRNG"

  349. lovetox

    Ge0rG, can you give an example why this is a can of worms?

  350. flow

    of course you are free to ignore that in your implementation, but then you can't claim standard compliance and you have to live with the consequences

  351. Link Mauve

    Earlier today I was reading the XML specification, and found not respected MUSTs in minidom which are totally fine not to respect in our XMPP environment.

  352. flow

    lovetox, some XML parsers, IIRC the one on Android, will not inhert xml:lang to deeper XML levels

  353. Link Mauve

    Incidentally, I just opened https://gitlab.com/xmpp-rs/minidom-rs/issues/17

  354. Ge0rG

    lovetox: that, and your prosody issue.

  355. flow

    that means you may have to work around that if you want get the effective xml:lang

  356. flow

    note that this is usually also true for namespace prefix bindings

  357. Ge0rG

    Also displaying of the right human readable text from a message with a set of different language texts

  358. lovetox

    i have the feeling you talk about some use cases that never happen

  359. lovetox

    also i dont see why i would need my parser to do some inherit stuff with xml lang

  360. Ge0rG

    They never happen because nobody is making use of xml:lang because they never happen.

  361. lovetox

    this is about telling my server my preferred lang, i dont parse it anywhere, i only send it

  362. flow

    lovetox, well let's say there is a server which optimizes xml:lang by stripped redundant ones

  363. flow

    I think there are some more cases, but yes it obviously hasn't hurt xmpp that much in the past 20 years

  364. Ge0rG

    lovetox: the body inherits the lang from the message, which inherits it from the stream. If your xml library doesn't do that Inheritance, you need to manually traverse the hierarchy

  365. flow

    on the other hand, smack just got support for an xml environment which keeps track of xml:lang

  366. flow

    which is hopefully caused by xmpp becoming more and more used so that those rare cases where xml:lang inheritance becomes important also become important ;)

  367. lovetox

    no you really dont Ge0rG, at least not for the basic use case of getting translated messages from your server

  368. lovetox

    what you are talking about is user to user stuff

  369. lovetox

    yeah i wouldnt even start with xml lang there

  370. Ge0rG

    lovetox: I'm talking about the code needed to display the correct string to the user

  371. Ge0rG

    lovetox: let's say it's not message body but the text field from a message error

  372. Ge0rG

    Same situation

  373. flow

    Ge0rG, aren't you talking about the "here is the same error message in 20 different language strings, please select the best one" case?

  374. lovetox

    whats the problem? you dont work with inheritence there

  375. lovetox

    you just set the xml:lang on the <text>

  376. lovetox

    the server sets it in this case

  377. lovetox

    if its not there, its the lang the server told you in stream init

  378. Ge0rG

    flow: I'm talking about the smack report where no text at all is returned when the languages don't match

  379. flow

    Ge0rG, i guess that is very indirect yes to my question

  380. Ge0rG

    lovetox: you just described Inheritance

  381. Ge0rG

    flow: maybe not 20, but 2, or even just one, but in the wrong language

  382. lovetox

    why would a server return 2?

  383. lovetox

    this is already some theoretical stuff

  384. flow

    lovetox, because the stanza may not originated from the server

  385. flow

    it maybe came from a remote entity which has no knowledge about your stream's xml:lang

  386. Link Mauve

    lovetox, for instance, so you can have a nice localised message for user display, and the English version so they can report to the admin and easily look it up in the code.

  387. lovetox

    yeah still dont see the problem, one has xml:lang=en the other one "de"

  388. Link Mauve

    If I were to implement localised error messages in a server, I’d do it that way.

  389. flow

    Link Mauve, +1

  390. lovetox

    <error> can have "fi"

  391. lovetox

    it does not matter

  392. Link Mauve

    lovetox, the other one may not have it on the <text/> element, but on the stanza.

  393. lovetox

    because the directly set xml:lang on the text will always overrule parent or not?

  394. Link Mauve

    It still MUST be understood as German.

  395. Link Mauve

    lovetox, yes it will.

  396. Link Mauve

    But the @xml:lang might be present on any parent of the <text/> element, and you must inherit it in any child which doesn’t have one defined.

  397. flow

    so basically if you have: stream xml:lang=en, stanza xml:lang=de, error xml:lang not set, your parser should see the error's xml:lang as 'de' and not 'en'

  398. flow

    or, even better, your parser sould provide you mechanism to determine the effective xml:lang of the element

  399. Link Mauve

    And not "" either.

  400. Link Mauve

    And not '' either.

  401. Link Mauve

    And not '' either (which means no language set, as per XML 1.0).

  402. flow

    Link Mauve, yep, today I sadly learned that the empty string is valid for xml:lang

  403. Link Mauve

    TIL too!

  404. flow

    another fun fact: xml 1.0 mentions BCP 47 for xml:lang, xml 1.1 mentions rfc 3066

  405. flow

    now go out and find out the fun :)

  406. lovetox

    does the rfc not define one them self

  407. lovetox

    rfc says BCP 47

  408. flow

    ahh you spoiled the fun for the others, yes rfc 3066 is bcp 47

  409. Link Mauve


  410. Ge0rG

    it's not as bad as stringprep vs precis, eh?

  411. flow

    I just find it strange that this changed between xml 1.0 and 1.1, and i am curious to get the rationale behind that (if there is any)

  412. Link Mauve

    flow, isn’t BCP47 a live standard, as in it will point to whichever RFC is currently considered the one?

  413. lovetox

    either way, servers in general should get translation going, i see it working in ejabberd, its a nice thing

  414. flow

    Link Mauve, are they? but yes, that could be a reason

  415. Ge0rG

    lovetox: there should also be a translations project for the common error conditions.

  416. flow

    translate your favorite error message!

  417. Ge0rG

    This is especially important for stream errors, where the text element is an extension for the technical details, not the actual explanation

  418. wurstsalat

    > lovetox: there should also be a translations project for the common error conditions. +1

  419. lovetox

    yes also common forms

  420. Ge0rG

    Those too

  421. Link Mauve

    Yes please, Someone™ do that.

  422. Ge0rG

    The JSF should do it.

  423. Ge0rG

    Do we have a complete list of all places where the same translations are needed for all implementations?

  424. Ge0rG

    Forms, error conditions,...?

  425. Link Mauve

    Ge0rG, take a translated server’s .pot file?

  426. lovetox

    forms and error conditions, i didnt come across any other places where a server adds userfacing text

  427. Link Mauve

    lovetox, user configuration maybe?

  428. Ge0rG

    Link Mauve: there is no 1:1 mapping between conditions and server side error messages

  429. lovetox

    whats user configuration?

  430. Link Mauve

    lovetox, some servers may expose e.g. a web interface to their admins.

  431. Link Mauve

    Ge0rG, I know.

  432. Zash

    Create a repo, stick some .po files or whatever in it, pre-seed it with text from the RFC?

  433. Ge0rG

    Zash: on github!

  434. lovetox


  435. Mikaela has left

  436. lovetox

    i think one would need some translation website, like pootle or something

  437. Zash

    Not strictly, but such a thing can be used

  438. Ge0rG


  439. Ge0rG


  440. eevvoor has left

  441. lovetox

    transifex is pretty expensive

  442. Zash

    Are you supposed to do xml:lang inheritance yourself or can libexpat do it?

  443. Ge0rG

    Zash: yes.

  444. Zash


  445. lovetox

    Why would you care as server?

  446. lovetox

    just set the attr on the top element

  447. lovetox

    and be done

  448. Zash

    lovetox: The question is "Can the XML parser library do the thing you just asked us to do?"

  449. lovetox

    setting an attribute on a stanza?

  450. Zash

    Inheriting xml:lang from the stream to child elements

  451. lovetox

    im pretty sure it can do it

  452. Zash

    I'm not sure you grasp just how deep this can of worms is

  453. Zash

    If something copies one of the child tags of the stanza, they should probably also carry the xml:lang

  454. Zash

    Ie it should work similar to xmlns, which the xml parser supposedly handles for us

  455. lovetox

    I think you overthink that

  456. lovetox

    all you have to do is, add the attr to the message, iq, presence, and leave the rest to client parsers who get the stanza

  457. lovetox

    of course only if its not already there

  458. lovetox

    and this can never be wrong, as we set it on the stream already, so it is inherited in message, iq, presence anyway

  459. lovetox

    you just make it explicit

  460. lovetox

    you dont change anything here

  461. lovetox

    and thats only because these stanzas will reach entitys which dont have the c2s stream context

  462. lovetox

    and nobody asks you should make it explicit all the way down to the last child

  463. lovetox

    only the childs of stream

  464. Link Mauve

    lovetox, think about some user sending the server an xml:lang="fr" message, the server then copies only the body into some other message, maybe to send it to the admin, or to archive, or anything.

  465. Link Mauve

    The original body didn’t contain any @xml:lang, but the copy should contain it as xml:lang="fr".

  466. lovetox

    storing and restoring messages and all of its content correctly is a general issue that does not stop at that attr

  467. Link Mauve

    xmlns, xml:lang, something else?

  468. lovetox

    yes if the server does not preserve attr on the message

  469. lovetox

    there needs to be changes to make this right

  470. Link Mauve

    lovetox, it’s not only on the message, it should be “propagated” to all children of the stanza in that case.

  471. lovetox

    but i would never go the way and add the attr on all childs only because i dont want to store it on the message

  472. Tobias has left

  473. lovetox

    No Link Mauve server should replicate the message exactly

  474. lovetox

    if i send a message with lang=de, i expect it to be routed that way

  475. lovetox

    and not with lang=de on all childs set

  476. lovetox

    i mean yes it would be still correct

  477. Zash

    lang=de is implied

  478. lovetox

    but weird to rewrite a stanza that way

  479. lovetox

    and you do it with jabber:client already?

  480. lovetox

    why dont you copy it into every body?

  481. Zash


  482. Zash

    It's implied

  483. Link Mauve

    lovetox, it’s not about rewriting, it’s about representing in memory or serialised.

  484. Link Mauve

    And having an easy way to access it.

  485. lovetox

    yeah Link Mauve but thats totally different problem, sorry i cant believe that xml:lang attr suddently is the big challenge of serializing

  486. lovetox

    i see that a server dev, maybe has to change or adapt his serialization process

  487. Link Mauve

    lovetox, as for “replicating”, in my example the server would only want to copy the body, not the rest of the message. No matter the way it decides to represent it, it must introduce a xml:lang="fr" on the body once copied alone in another stanza.

  488. lovetox

    and in that way, my pervious statement "just add the attr" is wrong

  489. lovetox

    but i dont think this is a problem hard to solve

  490. Zash

    Actually you have to change jabber:client to jabber:server when sending it over s2s, so that's already messy

  491. waqas has left

  492. lovetox

    also this is all beside the point, users can already add xml:lang to messages, and we expect it to be routed to the destination

  493. lovetox

    are you telling me this does not work currently?

  494. Link Mauve

    lovetox, it does, but I’m talking about internal server processing (or any entity really).

  495. lovetox

    but im not proposing to change anything here

  496. Link Mauve

    If the entity wants to extract one element out of a stanza, the parent’s (parent’s (parent’s …)) @xml:lang should apply.

  497. Zash

    MUC subjects maybe?

  498. lovetox

    what im asking is, that the server sets the attr, not the client, so this change can not lead to problems

  499. Link Mauve

    Zash, yes, that’s a good example.

  500. Zash

    Tho Prosody only saves the text there

  501. Link Mauve

    It should also support setting multiple subjects, each in a different language. :)

  502. Zash

    My head hurts

  503. Steve Kille has joined

  504. Link Mauve

    In xmpp-parsers I made each text element a hash map of language to value.

  505. andy has left

  506. lovetox has left

  507. wurstsalat has left

  508. Ge0rG

    Is xml:lang preserved by MAM?

  509. Link Mauve

    Should be.

  510. Ge0rG

    Link Mauve: and then you implemented a getOptimalLanguageValue() based on a doubly weighted list from the Accept-Language header?

  511. Ge0rG walks himself out

  512. Link Mauve

    Ge0rG, only based on a single vector, from preferred to least preferred, defaulting to no lang, or if there is none to the first one.

  513. Link Mauve

    Without any normalisation (so for instance it won’t pick fr-FR if the user prefers fr).

  514. karoshi has left

  515. karoshi has joined

  516. andy has joined

  517. Nekit has left

  518. UsL has left

  519. UsL has joined

  520. Douglas Terabyte has joined

  521. lskdjf has left