Je ne vois pas mon message où j'avais posté le code de la macro, donc je
recommence en utilisant la boite mail cette fois (je comprends rien à ce
système de mélange forum/mailing list, première fois que je vois ça désolé).
Comme je le disais précédemment, le fichier JSON créé par la macro est
apparemment ANSI, je ne sais pas lui dire de faire de l'UTF-8. Quand je
crée au préalable un fichier en UTF-8, la macro l'écrase pour en refaire un
en ANSI.
Convertir le fichier en UTF-8 après coup n'enlève pas les "?". J'ai essayé
plusieurs éditeurs de texte et plusieurs fontes.
Le copier/coller fait un peu buguer l'indentation.
Dans mon fichier Calc, de la colonne A à D, ce sont les balises et marques
pour le formatage du langage JSON.
De la colonne E à J ce sont les langues.
La macro parse les lignes et les écrit à la suite dans un fichier .json
propre à chaque langue en créant la bonne indentation et le bon formatage
du langage.
REM ***** BASIC *****
Sub Main
Dim oFeuille as object, Cellule as object
Dim Resultat as string
oFeuille = ThisComponent.Sheets.getByName("quiz")
Nblang=6
for Lang=0 to (Nblang-1)
if Lang=0 then Fichier= Left(ThisComponent.URL , Len(ThisComponent.URL)-16)
& "en.json"
if Lang=1 then Fichier= Left(ThisComponent.URL , Len(ThisComponent.URL)-16)
& "fr.json"
if Lang=2 then Fichier= Left(ThisComponent.URL , Len(ThisComponent.URL)-16)
& "de.json"
if Lang=3 then Fichier= Left(ThisComponent.URL , Len(ThisComponent.URL)-16)
& "es.json"
if Lang=4 then Fichier= Left(ThisComponent.URL , Len(ThisComponent.URL)-16)
& "it.json"
if Lang=5 then Fichier= Left(ThisComponent.URL , Len(ThisComponent.URL)-16)
& "kr.json"
open Fichier for output as #1
for l=1 to 350 ' lignes (parse l'intégralité du document)
Resultat=""
for c=0 to 4
Cellule = oFeuille.getCellByPosition(c,l)
CelluleLang = oFeuille.getCellByPosition(c+Lang,l)
CelluleLangSuivante = oFeuille.getCellByPosition(c+Lang,l+1)
if c=0 and len(Cellule.String)>0 then
Resultat = Cellule.String
goto quiznext
endif
if c<4 and len(Cellule.String)>1 then
Resultat = Resultat & Cellule.String
endif
if c=4 and len(CelluleLang.String)>1 and
len(CelluleLangSuivante.String)>1 then Resultat = Resultat & " """ &
CelluleLang.String & ""","
if c=4 and l<>54 and len(CelluleLang.String)>1 and
len(CelluleLangSuivante.String)=0 then Resultat = Resultat & " """ &
CelluleLang.String & """"
if c=4 and l=54 then Resultat = Resultat & " """ & CelluleLang.String &
""","
if len(Cellule.String)=0 then Resultat = Resultat & " "
quiznext:
next c
if len(Resultat)>1 then
print #1, Resultat
endif
next l
close #1
next Lang
Le mer. 29 août 2018 à 23:38, Cédric Giraud <cmapoubellemail@gmail.com> a
écrit :
Ah, au temps pour moi, je cliquais sur "reply" depuis le forum, je croyais
que tout le monde le voyais, le site me disant que le mail était envoyé à
toute la liste.
Le mer. 29 août 2018 à 19:04, Landron Gérard <cornosier@palendriai.lt> a
écrit :
Le 29/08/2018 à 16:10, demande_aide_fr@libreoffice.org a écrit :
Bonjour
Si vous répondez, merci de penser à utiliser la fonction "répondre à
tous" de votre logiciel de courrier électronique de façon que la liste
reçoive une copie de votre réponse.
Email:: cmapoubellemail@gmail.com
Sujet:: Calc macro : écrire des caractères coréens dans un fichier
OS:: Windows 10
Version:: 6.0.x
Question:: Bonjour,
J'utilise LibreOffice Calc pour gérer des traductions, ainsi qu'une
macro qui génère des fichiers .json (un par langue, dont le coréen, seule
langue avec alphabet non latin du lot).
Calc m'affiche bien les caractères coréens, mais dans le fichier .json
généré, je n'ai que des "?". Comment régler le problème ?
Bonsoir,
quel est l'encodage du fichier json ? c'est la macro qui le défini ou le
système ?
Je n'ai pas d'autre problème que ça.
Merci,
Gérard
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.