ton soucis c'est pour windows ou linux ?
En tout cas, j'étais persuadé que ça pouvait se régler (sous Linux) dans les paramètres linguistiques de libreoffice… et bah non ! Tu m'en apprends… Après fouille j'arrive à faire des virgules en faisant « AltGr + Séparateur du pavé numérique ».
Ma démarche de fouille
Je fouille dans les symbols de xkb. Sur ma distrib linux c'est /usr/share/X11/xkb/symbols/fr
$ grep -A 3 bepo /usr/share/X11/xkb/symbols/fr
xkb_symbols "bepo" {
include "level3(ralt_switch)"
include "keypad(oss)"
--
xkb_symbols "bepo_latin9" {
// Restricts the fr(bepo) layout to latin9 symbols
include "fr(bepo)"
include "keypad(oss_latin9)"
name[Group1]="French (Bepo, ergonomic, Dvorak way, Latin-9 only)";
On voit le include « keypad(oss) ». Partons la recherche de « oss ».
$ grep -A 6 '"oss"' /usr/share/X11/xkb/symbols/keypad
xkb_symbols "oss" {
include "keypad(core)"
include "keypad(ossmath)"
include "keypad(ossnumber)"
include "kpdl(dotoss)"
};
Dans ce fichier /usr/share/X11/xkb/keypad on a l'air de trouver pas mal de merdier pour la gestion des pavés numériques.
$ grep -A 9 '"ossmath"' /usr/share/X11/xkb/symbols/keypad
xkb_symbols "ossmath" {
key.type[Group1]="CTRL+ALT" ;
key <KPDV> { [ KP_Divide, 0x1002215, 0x10000F7, VoidSymbol, XF86_Ungrab ] }; // / ∕ ÷ <XF86_Ungrab>
key <KPMU> { [ KP_Multiply, 0x10022C5, 0x10000D7, VoidSymbol, XF86_ClearGrab ] }; // * ⋅ × <XF86_ClearGrab>
key <KPSU> { [ KP_Subtract, 0x1002212, 0x1002212, VoidSymbol, XF86_Prev_VMode ] }; // - − − <XF86_Prev_VMode>
key <KPAD> { [ KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
};
On se rapproche : on voit ici que 2 autres symboles de divisision sont accessibles avec les modificateurs Shift et AltGr. Pas de symbole pour « Shift+AltGr ». Ça c'est pour les opérations, pas pour les séparateurs. La dernière ligne « include "kpdl(dotoss)" » a l'air prometteuse, c'est dans un autre fichier.
$ grep -A 5 '"dotoss"' /usr/share/X11/xkb/symbols/kpdl
xkb_symbols "dotoss" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KPDL> { [ KP_Delete, period, comma, 0x100202F ] }; // <delete> . , ⍽ (narrow no-break space)
};
Là où ça se passe dans xkb
On touche au but, la syntaxe est tout de même étrange. Après avoir vu ça j'arrive à faire des virgules avec le séparateur du clavier numérique en faisant « AltGr + Séparateur ». En examinant plus en détail le fichier on trouve ce passage au tout début:
$ head -n 13 /usr/share/X11/xkb/symbols/kpdl
// The <KPDL> key is a mess.
// It was probably originally meant to be a decimal separator.
// Except since it was declared by USA people it didn't use the original
// SI separator "," but a "." (since then the USA managed to f-up the SI
// by making "." an accepted alternative, but standards still use "," as
// default)
// As a result users of SI-abiding countries expect either a "." or a ","
// or a "decimal_separator" which may or may not be translated in one of the
// above depending on applications.
// It's not possible to define a default per-country since user expectations
// depend on the conflicting choices of their most-used applications,
// operating system, etc. Therefore it needs to be a configuration setting
// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
Ça apporte pas mal d'infos sur l'historique des séparateurs décimaux en informatique. Le soucis étant que le pour les langages de programmation le séparateur décimal c'est le point. Effectivement tout dépend du contexte. Ma foi si la virgule est accessible en faisant « AltGr + Séparateur » ça me va.
Un bout de solution
Si tu utilises une distrib linux, ou quoique ce soit utilisant X, tu peux te bricoler une config BÉPO inversant le comportement. Tu peux même t'appuyer sur l'infrastructure en place:
$ grep -A 5 '"commaoss"' /usr/share/X11/xkb/symbols/kpdl
xkb_symbols "commaoss" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
key <KPDL> { [ KP_Delete, comma, period, 0x100202F ] }; // <delete> , . ⍽ (narrow no-break space)
};
Basé là-dessus, il serait possible de faire une variante de BÉPO « commaoss », avec
xkbcomp.