0

Je suis en train de traduire un formulaire Windows 2.0 compact dans Visual Studio 2005. Pour ce faire, je change la langue du formulaire en allemand (la langue cible) et édite/redimensionner les contrôles sur le formulaire. Cela crée un fichier resources.de.resx contenant les chaînes traduites comme prévu.Impossible de localiser (traduire) un contrôle personnalisé dans .NETCF 2.0

Cependant, il existe un contrôle personnalisé sur le formulaire, qui possède une propriété appelée GroupText, qui doit également être traduite. Toutefois, le concepteur de formulaires refuse d'utiliser les fichiers de ressources pour cette propriété. Chaque fois que je change la propriété dans l'éditeur de propriétés, elle est modifiée pour toutes les langues. J'ai vérifié les fichiers resx - ils ne contiennent pas la propriété GroupText, et le code généré par Designer n'utilise pas non plus le fichier resx pour cette propriété.

Existe-t-il un moyen d'activer également la localisation prise en charge par Visual Studio prise en charge par Visual Studio pour les contrôles personnalisés?

Edit:

En complément de la réponse acceptée, voici ce que vous devez faire pour obtenir resx pour les contrôles personnalisés au travail.

Chaque propriété qui doit entrer dans un fichier RESX doit avoir l'attribut Localizable défini sur true. Maintenant, les FC ne prennent pas en charge cet attribut via la syntaxe de parenthèses habituelle. Vous ne pouvez pas écrire [Localizable=true] dans le fichier source cs. Vous devez créer un fichier séparé appelé DesignTimeAttributes.xmta dans le projet et ajouter ce qui suit:

<?xml version="1.0" encoding="utf-16"?> 
<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd"> 
<Class Name="MyControl"> 
    <Property Name="MyProperty"> 
    <Localizable>true</Localizable> 
    </Property> 
</Class> 

Une fois que vous reconstruisez l'assemblage contenant le contrôle, Visual Studio mettra les valeurs de propriété dans resx.

Répondre

0

Les contrôles personnalisés pour des raisons que je pense tout à fait évidentes ne sont pas localisables par défaut, l'auteur d'un tel contrôle doit prendre soin de cela. Certains contrôles personnalisés ont une propriété localisable booléenne, qui contrôle si le contrôle écrit ses messages dans le fichier de ressources, mais je suppose que ce n'est pas le cas ici.

Si le texte que vous voulez traduire est accessible via une propriété ou un constructeur, vous pouvez créer votre propre fichier * .resx et lui affecter ce texte lors de sa création. Si ce n'est pas le cas, je crains que vous n'ayez pas de chance.

+0

L'indice avec l'attribut Localizable-aidait suffisamment pour que cela fonctionne. Merci! – TheFogger

Questions connexes