Bonjour à tous,
J'ai une petite db utilisable en différentes langues suivant les
utilisateurs.
Cette db evolue et ma methode devient un peu lourde : traduction de chaque
"Caption" une à une.
Quelqu'un a-t-il une expérience ou une idée pour accelerer les choses ?
Ex. traduction automatique de toutes les "Captions" des formulaires à
l'ouverture ...
Merci d'avance.
Bonjour à tous,
J'ai une petite db utilisable en différentes langues suivant les
utilisateurs.
Cette db evolue et ma methode devient un peu lourde : traduction de chaque
"Caption" une à une.
Quelqu'un a-t-il une expérience ou une idée pour accelerer les choses ?
Ex. traduction automatique de toutes les "Captions" des formulaires à
l'ouverture ...
Merci d'avance.
Bonjour à tous,
J'ai une petite db utilisable en différentes langues suivant les
utilisateurs.
Cette db evolue et ma methode devient un peu lourde : traduction de chaque
"Caption" une à une.
Quelqu'un a-t-il une expérience ou une idée pour accelerer les choses ?
Ex. traduction automatique de toutes les "Captions" des formulaires à
l'ouverture ...
Merci d'avance.
Bonjour,
PLC wrote:
| Bonjour à tous,
| J'ai une petite db utilisable en différentes langues suivant les
| utilisateurs.
| Cette db evolue et ma methode devient un peu lourde : traduction de
| chaque "Caption" une à une. Quelqu'un a-t-il une expérience ou une
| idée pour accelerer les choses ?
| Ex. traduction automatique de toutes les "Captions" des formulaires à
| l'ouverture ...
| Merci d'avance.
Ma suggestion :
1 - fichiers langfr.ini, lang_en.ini, lang_de.ini dans le répertoire
de la base 2 - sur ouverture du formulaire, une procédure va lire
ligne par ligne le fichier ini 2bis - qui correspond à la langue de
l'utilisateur (fonction API) 3 - cette même procédure alimentera les
propriétés caption des étiquettes
Voilà pour le principe, mais j'en appelle au forum car je coince sur
le point 3 au niveau de la syntaxe
pour proposer la procédure complète :
*Donc voici ma question chers amis :*
J'ai :
Private Sub Form_Open(Cancel As Integer)
Dim txtLine as String
Dim arrayLine as Variant
txtLine = "MonEtiquette;Le Libellé de mon étiquette :"
arrayLine = Split(txtLine, ";")
'Debug.Print "Me!" & arrayLine(0) & ".Caption = """ & arrayLine(1) &
"""" 'Debug.Print "Me(""" & arrayLine(0) & """).Caption = """ &
arrayLine(1) & """" End Sub
Voilà, mais mon problème, c'est que si je sors le debug.print, access
ne comprend pas que je veux alimenter mes légendes......
Qui peut me rafraîchir la mémoire sur la bonne syntaxe à utiliser ?
Par avance merci
Bonjour,
PLC wrote:
| Bonjour à tous,
| J'ai une petite db utilisable en différentes langues suivant les
| utilisateurs.
| Cette db evolue et ma methode devient un peu lourde : traduction de
| chaque "Caption" une à une. Quelqu'un a-t-il une expérience ou une
| idée pour accelerer les choses ?
| Ex. traduction automatique de toutes les "Captions" des formulaires à
| l'ouverture ...
| Merci d'avance.
Ma suggestion :
1 - fichiers langfr.ini, lang_en.ini, lang_de.ini dans le répertoire
de la base 2 - sur ouverture du formulaire, une procédure va lire
ligne par ligne le fichier ini 2bis - qui correspond à la langue de
l'utilisateur (fonction API) 3 - cette même procédure alimentera les
propriétés caption des étiquettes
Voilà pour le principe, mais j'en appelle au forum car je coince sur
le point 3 au niveau de la syntaxe
pour proposer la procédure complète :
*Donc voici ma question chers amis :*
J'ai :
Private Sub Form_Open(Cancel As Integer)
Dim txtLine as String
Dim arrayLine as Variant
txtLine = "MonEtiquette;Le Libellé de mon étiquette :"
arrayLine = Split(txtLine, ";")
'Debug.Print "Me!" & arrayLine(0) & ".Caption = """ & arrayLine(1) &
"""" 'Debug.Print "Me(""" & arrayLine(0) & """).Caption = """ &
arrayLine(1) & """" End Sub
Voilà, mais mon problème, c'est que si je sors le debug.print, access
ne comprend pas que je veux alimenter mes légendes......
Qui peut me rafraîchir la mémoire sur la bonne syntaxe à utiliser ?
Par avance merci
Bonjour,
PLC wrote:
| Bonjour à tous,
| J'ai une petite db utilisable en différentes langues suivant les
| utilisateurs.
| Cette db evolue et ma methode devient un peu lourde : traduction de
| chaque "Caption" une à une. Quelqu'un a-t-il une expérience ou une
| idée pour accelerer les choses ?
| Ex. traduction automatique de toutes les "Captions" des formulaires à
| l'ouverture ...
| Merci d'avance.
Ma suggestion :
1 - fichiers langfr.ini, lang_en.ini, lang_de.ini dans le répertoire
de la base 2 - sur ouverture du formulaire, une procédure va lire
ligne par ligne le fichier ini 2bis - qui correspond à la langue de
l'utilisateur (fonction API) 3 - cette même procédure alimentera les
propriétés caption des étiquettes
Voilà pour le principe, mais j'en appelle au forum car je coince sur
le point 3 au niveau de la syntaxe
pour proposer la procédure complète :
*Donc voici ma question chers amis :*
J'ai :
Private Sub Form_Open(Cancel As Integer)
Dim txtLine as String
Dim arrayLine as Variant
txtLine = "MonEtiquette;Le Libellé de mon étiquette :"
arrayLine = Split(txtLine, ";")
'Debug.Print "Me!" & arrayLine(0) & ".Caption = """ & arrayLine(1) &
"""" 'Debug.Print "Me(""" & arrayLine(0) & """).Caption = """ &
arrayLine(1) & """" End Sub
Voilà, mais mon problème, c'est que si je sors le debug.print, access
ne comprend pas que je veux alimenter mes légendes......
Qui peut me rafraîchir la mémoire sur la bonne syntaxe à utiliser ?
Par avance merci
Anor wrote:
| tests de non régressivité ;-)))))
je voulais dire de non régression, mais à notre niveau, ça ne veut
rien dire :-)
Anor wrote:
| tests de non régressivité ;-)))))
je voulais dire de non régression, mais à notre niveau, ça ne veut
rien dire :-)
Anor wrote:
| tests de non régressivité ;-)))))
je voulais dire de non régression, mais à notre niveau, ça ne veut
rien dire :-)
Salut Eric
Eric wrote:
| Trop tard je t'ai répondu ;-)
| Eric
Merci c'était bien ça.
Alors pour la peine, voici une procédure complète à titre d'exemple
qui charge le formulaire dans la langue de l'utilisateur.
- un fichier lang_FRA.ini situé dans le même dossier que la base de
données. Contenu du fichier (extrait) avec
nomducontrole£propriété£valeur
Def£Rowsource£A;Vital;B;Principal;C;Secondaire
lblPu£Caption£Prix Unitaire(EUR):
lblDAj£Caption£Délai d 'Approvisionnement (jours) :
lblTs£Caption£Taux de Stockage :
Ts£ControlTipText£Total Coût Annuel de gestion du stock / Valeur
Totale du Stock lblDef£Caption£Criticité Moyenne Défaillances :
lblSC£Caption£Stock de Couverture :
SC£ControlTipText£Consommation prévisible pendant le délai
d'approvisionnement
- un formulaire avec quelques étiquettes pour la propriété Caption,
une zone de liste déroulante pour la propriété RowSource
(à cause d'elle, j'ai changé de séparateur car besoin du point
virgule) et des zones de texte pour la propriété ControlTipText.
- Puis le code VBA du formulaire :
Option Compare Database
Option Explicit
Private Declare Function GetLocaleInfo Lib "kernel32" _
Alias "GetLocaleInfoA" _
(ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String, _
ByVal cchData As Long) As Long
Private Declare Function GetUserDefaultLCID% Lib "kernel32" ()
Const LOCALE_SABBREVLANGNAME = &H3
Private Function LangueAbregee() As String
Dim Symbol As String
Dim iRet1 As Long
Dim iRet2 As Long
Dim lpLCDataVar As String
Dim pos As Integer
Dim Locale As Long
Locale = GetUserDefaultLCID()
iRet1 = GetLocaleInfo(Locale, LOCALE_SABBREVLANGNAME, lpLCDataVar,
0)
Symbol = String$(iRet1, 0)
iRet2 = GetLocaleInfo(Locale, LOCALE_SABBREVLANGNAME, Symbol,
iRet1) pos = InStr(Symbol, Chr$(0))
If pos > 0 Then
Symbol = Left$(Symbol, pos - 1)
LangueAbregee = Symbol
End If
End Function
Private Sub Form_Open(Cancel As Integer)
Call PopulateCaptions
End Sub
Sub PopulateCaptions()
On Error Resume Next
Dim F As Integer
Dim LeFichier As String
Dim txtLine As String
Dim arrayLine As Variant
LeFichier = Left(CurrentDb.Name, InStr(1, CurrentDb.Name, _
Dir(CurrentDb.Name)) - 1) & "lang_" & LangueAbregee() &
".ini"
F = FreeFile
Open LeFichier For Input As #F
If Err.Number > 0 Then: GoTo Fin
Do While Not EOF(F)
Line Input #F, txtLine
arrayLine = Split(txtLine, "£")
Me(arrayLine(0)).Properties(arrayLine(1)) = arrayLine(2)
Loop
Close #F
Fin:
End Sub
Voilà le genre de petites procédures qui je l'espère font plaisir à
retrouver sur MPFA ;-))
Salut Eric
Eric wrote:
| Trop tard je t'ai répondu ;-)
| Eric
Merci c'était bien ça.
Alors pour la peine, voici une procédure complète à titre d'exemple
qui charge le formulaire dans la langue de l'utilisateur.
- un fichier lang_FRA.ini situé dans le même dossier que la base de
données. Contenu du fichier (extrait) avec
nomducontrole£propriété£valeur
Def£Rowsource£A;Vital;B;Principal;C;Secondaire
lblPu£Caption£Prix Unitaire(EUR):
lblDAj£Caption£Délai d 'Approvisionnement (jours) :
lblTs£Caption£Taux de Stockage :
Ts£ControlTipText£Total Coût Annuel de gestion du stock / Valeur
Totale du Stock lblDef£Caption£Criticité Moyenne Défaillances :
lblSC£Caption£Stock de Couverture :
SC£ControlTipText£Consommation prévisible pendant le délai
d'approvisionnement
- un formulaire avec quelques étiquettes pour la propriété Caption,
une zone de liste déroulante pour la propriété RowSource
(à cause d'elle, j'ai changé de séparateur car besoin du point
virgule) et des zones de texte pour la propriété ControlTipText.
- Puis le code VBA du formulaire :
Option Compare Database
Option Explicit
Private Declare Function GetLocaleInfo Lib "kernel32" _
Alias "GetLocaleInfoA" _
(ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String, _
ByVal cchData As Long) As Long
Private Declare Function GetUserDefaultLCID% Lib "kernel32" ()
Const LOCALE_SABBREVLANGNAME = &H3
Private Function LangueAbregee() As String
Dim Symbol As String
Dim iRet1 As Long
Dim iRet2 As Long
Dim lpLCDataVar As String
Dim pos As Integer
Dim Locale As Long
Locale = GetUserDefaultLCID()
iRet1 = GetLocaleInfo(Locale, LOCALE_SABBREVLANGNAME, lpLCDataVar,
0)
Symbol = String$(iRet1, 0)
iRet2 = GetLocaleInfo(Locale, LOCALE_SABBREVLANGNAME, Symbol,
iRet1) pos = InStr(Symbol, Chr$(0))
If pos > 0 Then
Symbol = Left$(Symbol, pos - 1)
LangueAbregee = Symbol
End If
End Function
Private Sub Form_Open(Cancel As Integer)
Call PopulateCaptions
End Sub
Sub PopulateCaptions()
On Error Resume Next
Dim F As Integer
Dim LeFichier As String
Dim txtLine As String
Dim arrayLine As Variant
LeFichier = Left(CurrentDb.Name, InStr(1, CurrentDb.Name, _
Dir(CurrentDb.Name)) - 1) & "lang_" & LangueAbregee() &
".ini"
F = FreeFile
Open LeFichier For Input As #F
If Err.Number > 0 Then: GoTo Fin
Do While Not EOF(F)
Line Input #F, txtLine
arrayLine = Split(txtLine, "£")
Me(arrayLine(0)).Properties(arrayLine(1)) = arrayLine(2)
Loop
Close #F
Fin:
End Sub
Voilà le genre de petites procédures qui je l'espère font plaisir à
retrouver sur MPFA ;-))
Salut Eric
Eric wrote:
| Trop tard je t'ai répondu ;-)
| Eric
Merci c'était bien ça.
Alors pour la peine, voici une procédure complète à titre d'exemple
qui charge le formulaire dans la langue de l'utilisateur.
- un fichier lang_FRA.ini situé dans le même dossier que la base de
données. Contenu du fichier (extrait) avec
nomducontrole£propriété£valeur
Def£Rowsource£A;Vital;B;Principal;C;Secondaire
lblPu£Caption£Prix Unitaire(EUR):
lblDAj£Caption£Délai d 'Approvisionnement (jours) :
lblTs£Caption£Taux de Stockage :
Ts£ControlTipText£Total Coût Annuel de gestion du stock / Valeur
Totale du Stock lblDef£Caption£Criticité Moyenne Défaillances :
lblSC£Caption£Stock de Couverture :
SC£ControlTipText£Consommation prévisible pendant le délai
d'approvisionnement
- un formulaire avec quelques étiquettes pour la propriété Caption,
une zone de liste déroulante pour la propriété RowSource
(à cause d'elle, j'ai changé de séparateur car besoin du point
virgule) et des zones de texte pour la propriété ControlTipText.
- Puis le code VBA du formulaire :
Option Compare Database
Option Explicit
Private Declare Function GetLocaleInfo Lib "kernel32" _
Alias "GetLocaleInfoA" _
(ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String, _
ByVal cchData As Long) As Long
Private Declare Function GetUserDefaultLCID% Lib "kernel32" ()
Const LOCALE_SABBREVLANGNAME = &H3
Private Function LangueAbregee() As String
Dim Symbol As String
Dim iRet1 As Long
Dim iRet2 As Long
Dim lpLCDataVar As String
Dim pos As Integer
Dim Locale As Long
Locale = GetUserDefaultLCID()
iRet1 = GetLocaleInfo(Locale, LOCALE_SABBREVLANGNAME, lpLCDataVar,
0)
Symbol = String$(iRet1, 0)
iRet2 = GetLocaleInfo(Locale, LOCALE_SABBREVLANGNAME, Symbol,
iRet1) pos = InStr(Symbol, Chr$(0))
If pos > 0 Then
Symbol = Left$(Symbol, pos - 1)
LangueAbregee = Symbol
End If
End Function
Private Sub Form_Open(Cancel As Integer)
Call PopulateCaptions
End Sub
Sub PopulateCaptions()
On Error Resume Next
Dim F As Integer
Dim LeFichier As String
Dim txtLine As String
Dim arrayLine As Variant
LeFichier = Left(CurrentDb.Name, InStr(1, CurrentDb.Name, _
Dir(CurrentDb.Name)) - 1) & "lang_" & LangueAbregee() &
".ini"
F = FreeFile
Open LeFichier For Input As #F
If Err.Number > 0 Then: GoTo Fin
Do While Not EOF(F)
Line Input #F, txtLine
arrayLine = Split(txtLine, "£")
Me(arrayLine(0)).Properties(arrayLine(1)) = arrayLine(2)
Loop
Close #F
Fin:
End Sub
Voilà le genre de petites procédures qui je l'espère font plaisir à
retrouver sur MPFA ;-))
Et voilà qui est fait
http://memoaccess.free.fr/forms.htm#Populate
Et voilà qui est fait
http://memoaccess.free.fr/forms.htm#Populate
Et voilà qui est fait
http://memoaccess.free.fr/forms.htm#Populate