Voici quelques semaines (en fait, en commen=E7ant =E0 partir d'il y a pil=
e=20
deux mois) j'ai trouv=E9 (avec un soutien moral ici) comment =E9tablir la=
=20
liste des cultures pour lesquelles une page est traduite, en parcourant=20
la liste des fichiers de ressources du r=E9pertoire consacr=E9 =E0 cet ef=
fet.=20
Pour chacun il faut demander la traduction d'une ressource, il faudra=20
donc faire attention d'avoir un nom de ressource pr=E9sent dans tous les =
fichiers de ressources.
Je suis en train de mettre =E7a en =9Cuvre, pour cela il me faut le=20
r=E9pertoire et le nom de la page, et je me demande si pour =E7a je n'ai =
pas=20
loup=E9 une syntaxe plus simple.
J'avais d'abord pens=E9 =E0 MapPath, mais ce n'=E9tait pas forc=E9ment pl=
us=20
simple, puisque je cherche =E0 avoir une syntaxe qui fonctionne pour=20
toutes les pages, et que je pourrai inclure (apr=E8s adaptation bien=20
entendu) dans le code d'une page ma=EEtresse (aspect que je n'ai pas=20
encore abord=E9).
Voici donc comment j'ai proc=E9d=E9 pour =E9tablir le chemin d'un fichier=
de=20
ressources :
TraitPage p =3D new TraitPage();
CultureInfo gci =3D new CultureInfo("fr"); // par exemple
Label1.Text =3D p.CheminCulture(this, gci); // pour voir
public class TraitPage
{
public TraitPage()
{
//
// TODO: Add constructor logic here
//
}
public String NomPage(Page p)
{
string str;
int L =3D p.Request.PhysicalPath.LastIndexOf("\\") + 1;
str =3D p.Request.PhysicalPath
.Substring(L, p.Request.PhysicalPath.Length - L);
L =3D str.IndexOf(".");
return str.Substring(0, L);
}
public String RepPage(Page p)
{
string str;
int L =3D p.Request.PhysicalPath.LastIndexOf("\\") + 1;
str =3D p.Request.PhysicalPath.Substring(0, L);
return str;
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gilles Kohl [MVP]
On Thu, 06 Mar 2008 20:28:21 +0100, Gloops wrote:
Bonjour tout le monde,
Voici quelques semaines (en fait, en commençant à partir d'il y a pile deux mois) j'ai trouvé (avec un soutien moral ici) comment établir la liste des cultures pour lesquelles une page est traduite, en parcourant la liste des fichiers de ressources du répertoire consacré à cet effet. Pour chacun il faut demander la traduction d'une ressource, il faudra donc faire attention d'avoir un nom de ressource présent dans tous les fichiers de ressources.
Je suis en train de mettre ça en œuvre, pour cela il me faut le répertoire et le nom de la page, et je me demande si pour ça je n'ai pas loupé une syntaxe plus simple.
Bonjour Gloops,
Je ne suis pas sûr de bien comprendre ce que tu essayes d'obtenir, mais est-ce tu connais System.IO.Path et ses methodes statiques, comme Path.Combine, Path.GetDirectoryName, Path.ChangeExtension, Path.GetFileName, Path.GetFileNameWithoutExtension etc. ?
On Thu, 06 Mar 2008 20:28:21 +0100, Gloops <gloops@niark.invalid>
wrote:
Bonjour tout le monde,
Voici quelques semaines (en fait, en commençant à partir d'il y a pile
deux mois) j'ai trouvé (avec un soutien moral ici) comment établir la
liste des cultures pour lesquelles une page est traduite, en parcourant
la liste des fichiers de ressources du répertoire consacré à cet effet.
Pour chacun il faut demander la traduction d'une ressource, il faudra
donc faire attention d'avoir un nom de ressource présent dans tous les
fichiers de ressources.
Je suis en train de mettre ça en œuvre, pour cela il me faut le
répertoire et le nom de la page, et je me demande si pour ça je n'ai pas
loupé une syntaxe plus simple.
Bonjour Gloops,
Je ne suis pas sûr de bien comprendre ce que tu essayes d'obtenir,
mais est-ce tu connais System.IO.Path et ses methodes statiques, comme
Path.Combine, Path.GetDirectoryName, Path.ChangeExtension,
Path.GetFileName, Path.GetFileNameWithoutExtension etc. ?
Petite collection très utile, la-dedans.
Regards,
Gilles [MVP].
(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)
Voici quelques semaines (en fait, en commençant à partir d'il y a pile deux mois) j'ai trouvé (avec un soutien moral ici) comment établir la liste des cultures pour lesquelles une page est traduite, en parcourant la liste des fichiers de ressources du répertoire consacré à cet effet. Pour chacun il faut demander la traduction d'une ressource, il faudra donc faire attention d'avoir un nom de ressource présent dans tous les fichiers de ressources.
Je suis en train de mettre ça en œuvre, pour cela il me faut le répertoire et le nom de la page, et je me demande si pour ça je n'ai pas loupé une syntaxe plus simple.
Bonjour Gloops,
Je ne suis pas sûr de bien comprendre ce que tu essayes d'obtenir, mais est-ce tu connais System.IO.Path et ses methodes statiques, comme Path.Combine, Path.GetDirectoryName, Path.ChangeExtension, Path.GetFileName, Path.GetFileNameWithoutExtension etc. ?
Je ne suis pas sûr de bien comprendre ce que tu essayes d'obtenir, mais est-ce tu connais System.IO.Path et ses methodes statiques, comme Path.Combine, Path.GetDirectoryName, Path.ChangeExtension, Path.GetFileName, Path.GetFileNameWithoutExtension etc. ?
Petite collection très utile, la-dedans.
Bonjour Gilles,
Effectivement, d'après les noms, ça a bien l'air d'être ça qu'il me faut.
Le fil d'il y a deux mois s'appelait "Liste des cultures du projet". Il s'agira de remplir une liste déroulante avec les cultures disponibles pour permettre à l'utilisateur de choisir dans quelle langue il veut afficher la page, si le choix implicite ne lui convient pas pour une raison ou pour une autre.
Je vais regarder ça de plus près demain, merci beaucoup.
Gilles Kohl [MVP] a écrit, le 06/03/2008 21:41 :
Bonjour Gloops,
Je ne suis pas sûr de bien comprendre ce que tu essayes d'obtenir,
mais est-ce tu connais System.IO.Path et ses methodes statiques, comme
Path.Combine, Path.GetDirectoryName, Path.ChangeExtension,
Path.GetFileName, Path.GetFileNameWithoutExtension etc. ?
Petite collection très utile, la-dedans.
Bonjour Gilles,
Effectivement, d'après les noms, ça a bien l'air d'être ça qu'il me faut.
Le fil d'il y a deux mois s'appelait "Liste des cultures du projet". Il
s'agira de remplir une liste déroulante avec les cultures disponibles
pour permettre à l'utilisateur de choisir dans quelle langue il veut
afficher la page, si le choix implicite ne lui convient pas pour une
raison ou pour une autre.
Je vais regarder ça de plus près demain, merci beaucoup.
Je ne suis pas sûr de bien comprendre ce que tu essayes d'obtenir, mais est-ce tu connais System.IO.Path et ses methodes statiques, comme Path.Combine, Path.GetDirectoryName, Path.ChangeExtension, Path.GetFileName, Path.GetFileNameWithoutExtension etc. ?
Petite collection très utile, la-dedans.
Bonjour Gilles,
Effectivement, d'après les noms, ça a bien l'air d'être ça qu'il me faut.
Le fil d'il y a deux mois s'appelait "Liste des cultures du projet". Il s'agira de remplir une liste déroulante avec les cultures disponibles pour permettre à l'utilisateur de choisir dans quelle langue il veut afficher la page, si le choix implicite ne lui convient pas pour une raison ou pour une autre.
Je vais regarder ça de plus près demain, merci beaucoup.
Gloops
Gilles Kohl [MVP] a écrit, le 06/03/2008 21:41 :
mais est-ce tu connais System.IO.Path et ses methodes statiques
Alors voilà ce que ça donne. Je n'ai pas changé l'appel, puisque la structure en fonction me semble à maintenir, en revanche les fonctions sont bien entendu plus lisibles, on s'épargne la gymnastique intellectuelle à la lecture, qui faisait que mon code n'était lisible que jusqu'à 23h ;)
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Globalization;
/// <summary> /// Summary description for TraitPage /// </summary> public class TraitPage { public TraitPage() { // // TODO: Add constructor logic here // // peut-être à redire sur le fait que je n'ai rien // mis ici ... }
public String NomPage(Page p) { return System.IO.Path.GetFileNameWithoutExtension(p.Request.PhysicalPath); }
public String RepPage(Page p) { return System.IO.Path.GetDirectoryName(p.Request.PhysicalPath) + @""; }
mais est-ce tu connais System.IO.Path et ses methodes statiques
Alors voilà ce que ça donne. Je n'ai pas changé l'appel, puisque la
structure en fonction me semble à maintenir, en revanche les fonctions
sont bien entendu plus lisibles, on s'épargne la gymnastique
intellectuelle à la lecture, qui faisait que mon code n'était lisible
que jusqu'à 23h ;)
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Globalization;
/// <summary>
/// Summary description for TraitPage
/// </summary>
public class TraitPage
{
public TraitPage()
{
//
// TODO: Add constructor logic here
//
// peut-être à redire sur le fait que je n'ai rien
// mis ici ...
}
public String NomPage(Page p)
{
return
System.IO.Path.GetFileNameWithoutExtension(p.Request.PhysicalPath);
}
public String RepPage(Page p)
{
return System.IO.Path.GetDirectoryName(p.Request.PhysicalPath)
+ @"";
}
mais est-ce tu connais System.IO.Path et ses methodes statiques
Alors voilà ce que ça donne. Je n'ai pas changé l'appel, puisque la structure en fonction me semble à maintenir, en revanche les fonctions sont bien entendu plus lisibles, on s'épargne la gymnastique intellectuelle à la lecture, qui faisait que mon code n'était lisible que jusqu'à 23h ;)
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Globalization;
/// <summary> /// Summary description for TraitPage /// </summary> public class TraitPage { public TraitPage() { // // TODO: Add constructor logic here // // peut-être à redire sur le fait que je n'ai rien // mis ici ... }
public String NomPage(Page p) { return System.IO.Path.GetFileNameWithoutExtension(p.Request.PhysicalPath); }
public String RepPage(Page p) { return System.IO.Path.GetDirectoryName(p.Request.PhysicalPath) + @""; }
mais est-ce tu connais System.IO.Path et ses methodes statiques
Alors voilà ce que ça donne. Je n'ai pas changé l'appel, puisque la structure en fonction me semble à maintenir, en revanche les fonctions sont bien entendu plus lisibles, on s'épargne la gymnastique intellectuelle à la lecture, qui faisait que mon code n'était lisible que jusqu'à 23h ;)
public String NomPage(Page p) { return System.IO.Path.GetFileNameWithoutExtension(p.Request.PhysicalPath); }
public String RepPage(Page p) { return System.IO.Path.GetDirectoryName(p.Request.PhysicalPath) + @""; }
On Fri, 07 Mar 2008 23:08:27 +0100, Gloops <gloops@niark.invalid>
wrote:
Gilles Kohl [MVP] a écrit, le 06/03/2008 21:41 :
mais est-ce tu connais System.IO.Path et ses methodes statiques
Alors voilà ce que ça donne. Je n'ai pas changé l'appel, puisque la
structure en fonction me semble à maintenir, en revanche les fonctions
sont bien entendu plus lisibles, on s'épargne la gymnastique
intellectuelle à la lecture, qui faisait que mon code n'était lisible
que jusqu'à 23h ;)
public String NomPage(Page p)
{
return
System.IO.Path.GetFileNameWithoutExtension(p.Request.PhysicalPath);
}
public String RepPage(Page p)
{
return System.IO.Path.GetDirectoryName(p.Request.PhysicalPath)
+ @"";
}
mais est-ce tu connais System.IO.Path et ses methodes statiques
Alors voilà ce que ça donne. Je n'ai pas changé l'appel, puisque la structure en fonction me semble à maintenir, en revanche les fonctions sont bien entendu plus lisibles, on s'épargne la gymnastique intellectuelle à la lecture, qui faisait que mon code n'était lisible que jusqu'à 23h ;)
public String NomPage(Page p) { return System.IO.Path.GetFileNameWithoutExtension(p.Request.PhysicalPath); }
public String RepPage(Page p) { return System.IO.Path.GetDirectoryName(p.Request.PhysicalPath) + @""; }
Bien plus lisible à mon avis. Un "using System.IO;" permettrait d'économiser encore quelques charactères.
c'est pourtant vrai ...
Si NomPage n'est pas utilisé ailleurs (et si la nomenclature est cell e que je pense), on pourrait le changer en
return Path.GetFileName(p.Request.PhysicalPath);
et économiser encore le
+ ".aspx."
dans CheminCulture?
Ah oui, j'ai sûrement dû me faire un nud dans la tête : j'ai pré vu l'emplacement pour mettre le code de la culture, mais c'était après aspx, donc effectivement on peut mettre le nom entier avec son extension.
Merci encore pour ces précieux conseils.
Gilles Kohl [MVP] a écrit, le 08/03/2008 08:46 :
Bien plus lisible à mon avis. Un "using System.IO;" permettrait
d'économiser encore quelques charactères.
c'est pourtant vrai ...
Si NomPage n'est pas utilisé ailleurs (et si la nomenclature est cell e
que je pense), on pourrait le changer en
return Path.GetFileName(p.Request.PhysicalPath);
et économiser encore le
+ ".aspx."
dans CheminCulture?
Ah oui, j'ai sûrement dû me faire un nud dans la tête : j'ai pré vu
l'emplacement pour mettre le code de la culture, mais c'était après
aspx, donc effectivement on peut mettre le nom entier avec son extension.
Bien plus lisible à mon avis. Un "using System.IO;" permettrait d'économiser encore quelques charactères.
c'est pourtant vrai ...
Si NomPage n'est pas utilisé ailleurs (et si la nomenclature est cell e que je pense), on pourrait le changer en
return Path.GetFileName(p.Request.PhysicalPath);
et économiser encore le
+ ".aspx."
dans CheminCulture?
Ah oui, j'ai sûrement dû me faire un nud dans la tête : j'ai pré vu l'emplacement pour mettre le code de la culture, mais c'était après aspx, donc effectivement on peut mettre le nom entier avec son extension.