Archive Liste Typographie
Message : FontForge avec plus de français...

(Patrick Andries) - Jeudi 08 Juillet 2004
Navigation par date [ Précédent    Index    Suivant ]
Navigation par sujet [ Précédent    Index    Suivant ]

Subject:    FontForge avec plus de français...
Date:    Thu, 08 Jul 2004 12:58:52 -0400
From:    Patrick Andries <hapax@xxxxxxxxxxx>


FontForge est un éditeur multi-plateforme de polices de caractères
(PostScript, OpenType, TrueType).

http://fontforge.sourceforge.net/
http://www.framasoft.net/article2586.html

L'interface venait en plusieurs langues dont le français.

Depuis hier, avec le chargement d'une petite rustine, on peut afficher les noms des caractères français ainsi que les commentaires sur ceux-ci en français.

------

Reçu ce message du directeur du projet de FontForge au sujet de cette
rustine.

To this end I have changed libuninameslist so that the library now comes
in both French and English versions, and I have changed fontforge so
that it will load the appropriate library for the current locale.

French users might want to pull down the new libuninameslist.sf.net
(http://libuninameslist.sourceforge.net/) and
apply the following patch:



*** start.c~	2004-07-07 14:15:10.000000000 -0700
--- start.c	2004-07-07 14:19:01.000000000 -0700
***************
*** 68,80 ****
      _UnicodeNameAnnot = UnicodeNameAnnot;
  #else
      DL_CONST void *libuninames=NULL;
  # ifdef LIBDIR
!     libuninames = dlopen( LIBDIR "/libuninameslist" SO_EXT,RTLD_LAZY);
  # endif
!     if ( libuninames==NULL )
! 	libuninames = dlopen( "libuninameslist" SO_EXT,RTLD_LAZY);
!     if ( libuninames!=NULL )
! 	_UnicodeNameAnnot = dlsym(libuninames,"UnicodeNameAnnot");
  #endif
  }

--- 68,118 ----
      _UnicodeNameAnnot = UnicodeNameAnnot;
  #else
      DL_CONST void *libuninames=NULL;
+     const char *loc = getenv("LC_ALL");
  # ifdef LIBDIR
!     char full[1024], buf[100];
! # else
!     char buf[100];
! #endif
!     int i;
!
!     if ( loc==NULL ) loc = getenv("LC_MESSAGES");
!     if ( loc==NULL ) loc = getenv("LANG");
!     for ( i=0; i<4; ++i ) {
! 	strcpy(buf,"libuninameslist-");
! 	if ( i==3 )
! 	    buf[strlen(buf)-1] = '\0';
! 	    /* Use the default name */
! 	else if ( i==2 ) {
! 	    if ( loc==NULL || strlen( loc )<2 )
!     continue;
! 	    strncat(buf,loc,2);
! 	} else if ( i==1 ) {
! 	    if ( loc==NULL || strlen( loc )<5 )
!     continue;
! 	    strncat(buf,loc,5);
! 	} else if ( i==0 ) {
! 	    if ( loc==NULL || strlen( loc )<6 )
!     continue;
! 	    strcat(buf,loc);
! 	}
! 	strcat(buf, SO_EXT );
!
! # ifdef LIBDIR
! #  if !defined(_NO_SNPRINTF) && !defined(VMS)
! 	snprintf( full, sizeof(full), "%s/%s", LIBDIR, buf );
! #  else
! 	sprintf( full, "%s/%s", LIBDIR, buf );
! #  endif
! 	libuninames = dlopen( full,RTLD_LAZY);
  # endif
! 	if ( libuninames==NULL )
! 	    libuninames = dlopen( buf,RTLD_LAZY);
! 	if ( libuninames!=NULL ) {
! 	    _UnicodeNameAnnot = dlsym(libuninames,"UnicodeNameAnnot");
! return;
! 	}
!     }
  #endif
  }