| 次のページ >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

対訳: WordForgeプロジェクト概要

WordForge Project
WordForgeプロジェクト

The WordForge project was a project funded by OSI and the IDRC that worked towards simplifying the process of localisation of Software. Development was done with Free and Open Source software in mind, but its process and tools are also applicable to other types of software. The primary partners were Translate.org.za and KhmerOS.

WordForgeプロジェクトは OSI と IDRC によって資金援助されているプロジェクトで、ソフトウェアのローカライゼーション(以下 L10N化)のプロセスを簡素化するために活動している。 開発はフリー/オープンソース・ソフトウェアを念頭に置いてなされるが、プロセスとツールは他の種類のソフトウェアにも応用可能である。 主要なパートナーは Translate.org.za と KhmerOS である。

The WordForge project focused on standard data formats ( PO, XLIFF ) and localisation process data to improve the efficiency of translators and keep tight control of technical aspects of translation, while staying away from other technical issues of localisation not related to translation (such as source code modification).

WordForgeプロジェクトは、翻訳者の効率を向上させ翻訳の技術的な側面の厳しいコントロールを維持するため、標準的なデータフォーマット( POXLIFF )とL10N化の過程のデータに焦点を当てている。 一方で、翻訳それ自体に関係しないL10N化のその他の技術的問題(ソースコードの修正など)には関与しない。

WordForge took the Translate Toolkit and Pootle to new heights. The project also enhanced these tools to become more compliant with the various LISA standards ( TMX, TBX ). Pootle acts as a localisation management system in a localisation environment.

WordForgeは 翻訳ツールキットPootle を新たな高みに運んだ。 プロジェクトでは、これらのツールをさまざまなLISA標準( TMXTBX )にさらに準拠させる。 PootleはL10N化環境においてL10N化管理システムとして働く。

The project's end objective was to make it easier for new teams to start localising and to use tools to help us improve the quality of localised software. To that end the project was a success and has helped to stimulate further development in the FOSS localisation space.

プロジェクトの最終的な目標は、新しいチームがL10N化を始めるのを簡単にすることと、L10N化されたソフトウェアの品質向上を助けるためにツールを使うことである。 この目標に向かって、プロジェクトは成功をおさめ、FOSSのL10N化スペースにおいてさらなる開発促進を促す助けとなっている。

Creative Commons License
This work by sonota is licensed under a Creative Commons BY-SA 3.0 Unported License.
Based on a work at translate.sourceforge.net.
スポンサーサイト

雑メモ: libsndfile を使ってみた

まあ、いろいろと適当ですけど…… いやほんと適当なのでちゃんとやりたい人は The libsndfile API とかを見てください。


Ubuntu Linux の場合は
  $ sudo apt-get install  libsndfile1-dev


16bit の場合

---- 32767
∫
----  1
----  0
---- -1
∫
---- -32767

指定されたフレーム数だけ読み込んで値を表示

/*
gcc snd-003.c -lsndfile -o snd-003.exe
snd-003.exe wav_file_name frames_to_display

frames_to_display で指定されたフレーム数だけ読み込んで値を表示。
入力ファイルのフォーマットは 16bit, ステレオ(チャンネル数=2)。
*/

#include <stdio.h>
#include <sndfile.h>

int main( int argc, char** argv ){

  // ファイル名
  char* file_in =  argv[1] ;
  // 読み込むフレーム数
  int frames_to_read = atoi( argv[2] );

  // ファイルハンドラ
  SNDFILE* sf;
  // チャンネル数、サンプリング周波数などを持つ構造体
  SF_INFO sinfo;

  // sf_open の前に 0 にしておく
  sinfo.format = 0;

  // ファイル開く
  sf = sf_open( file_in, SFM_READ, &sinfo );

  printf( "%s\n", argv[1] );
  printf( "--------\n" );

  // 読み込むフレーム数
  sf_count_t count = 1;

  // 読み込んだ値を入れる配列
  short val[2];

  // 1フレームずつ読み込んで値を表示
  int a;
  for( a = 0; a < frames_to_read; a++ ){
    sf_readf_short( sf, val, count) ;

    printf( "% 4d:  L: % 6d  -  R: % 6d \n", a, val[0], val[1] );
  }

  // ファイル閉じる
  sf_close( sf );

  return 0;
}

読んでそのまま書き込み

/*
20080914
gcc snd-004.c -lsndfile -o snd-004.exe
snd-004.exe file_in file_out

file_in を読み込んで 1フレームずつ読み、file_out に移し替える
入力ファイルのフォーマットは 16bit, ステレオ(チャンネル数=2)とする。
*/

#include <stdio.h>
#include <sndfile.h>

int main( int argc, char** argv ){
  char* file_in  = argv[1] ;
  char* file_out = argv[2] ;

  SNDFILE* sfr;
  SNDFILE* sfw;
  // チャンネル数、サンプリング周波数などを持つ構造体
  SF_INFO sinfo;

  sinfo.format = 0;

  // ファイル開く
  // 入力
  sfr = sf_open( file_in, SFM_READ, &sinfo );
  // 出力 - 入力ファイルと同じフォーマットなので、sinfo をそのまま渡す
  sfw = sf_open( file_out, SFM_WRITE, &sinfo );

  printf( "sinfo.frames   = %d  \n", sinfo.frames   );
  printf( "sinfo.format   = 0x%x\n", sinfo.format   );
  printf( "sinfo.channels = %d  \n", sinfo.channels );
  printf( "sinfo.sections = %d  \n", sinfo.sections );
  printf( "sinfo.seekable = %d  \n", sinfo.seekable );

  printf( "--------\n" );

  sf_count_t count = 1;
  short val[ (int)count * sinfo.channels ];

  int a = 0;
  sf_count_t read_num;
  while(1){
    // これ以上データがないという場合には count と異なる値が返ってくる
    read_num = sf_readf_short(  sfr, val, count) ;
    printf( "% 4d:  L: % 6d  -  R: % 6d  -  %6d \n", a, val[0], val[1], read_num );

    if( read_num != count ){ 
      // ファイル終端まで達したらループ抜ける
      break; 
    } else {
      // 読み込みに成功していれば書き込む
      sf_writef_short( sfw, val, count) ;
    }

    a++;
  }

  // ファイル閉じる
  sf_close( sfr );
  sf_close( sfw );

  return 0;
}

サイン波を書き出す

参考: TaptAudio: sample.cpp Source File / unpaid_p10l: Parser/Reader for Korg KMP and KSF Files

/*
20080915
gcc snd-006.c -lsndfile -o snd-006.exe
snd-006.exe file_out frequency length_sec

周波数(Hz)、長さ(秒)を指定してサイン波を書き出す。
出力ファイルのフォーマットは 16bit, モノラル(チャンネル数=1)とする。
*/

#include <stdio.h>
#include <stdlib.h> // atof
#include <math.h> // atan, pow
#include <sndfile.h>

#define PI ( 4*atan(1.0) )

#define SAMPLE_RATE 44100
#define BIT_DEPTH 16

// 16bit のとき 2^15 - 1 = 32767
#define AMP_MAX (pow(2,(BIT_DEPTH-1)) - 1)

short frame2sine( int frame, double freq){
  //  double sec = (double)(frame % SAMPLE_RATE) / SAMPLE_RATE;
  double sec = (double)frame / SAMPLE_RATE;
  return (short)( sin( sec * 2 * PI * freq ) * AMP_MAX );
}

int main( int argc, char** argv ){
  char* file_out = argv[1] ;
  double freq = atof(argv[2]) ;
  double length_sec = atof(argv[3]) ;

  SNDFILE* sfw;
  SF_INFO sfinfo;

  // .wav の場合最低限この3つは指定しないといけないっぽい
  sfinfo.samplerate = SAMPLE_RATE;
  sfinfo.channels = 1;
  sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;

  // 書き込み用に sf_open() する前にフォーマットをチェック
  if( sf_format_check( &sfinfo ) == 0 ){
    printf( "invalid format: %d\n", sf_format_check( &sfinfo ) );
    exit(1);
  }

  sfw = sf_open( file_out, SFM_WRITE, &sfinfo );

  sf_count_t frames = 1;
  short val[ (int)frames * sfinfo.channels ];

  int a = 0;
  sf_count_t write_num;
  for( a=0; a < (int)(SAMPLE_RATE * length_sec); a++ ){
    val[0] = frame2sine(a, freq);
    write_num = sf_writef_short( sfw, val, frames ) ;
  }

  sf_close( sfw );

  return 0;
}

参考

[雑資料] 動画メモ(オプションとか)

たまにしか使わないので忘れる。

コマンドラインで使うものを主に。 自分が使わないもの、使いかたがよく分からないものはとりあえず省略。 あと素人なので間違ってたらすいません。

[雑資料] アーカイブファイル内のファイル・ディレクトリ一覧をコマンドラインで取得する

.tar

$ tar tvf foo.tar

.tar.gz / .tgz

$ tar tvfz foo.tar.gz

.tar.bz2

$ tar tvfj foo.tar.bz2

.zip

$ unzip -l foo.zip

.7z

$ 7z l foo.7z

.lzh

$ lha l foo.lzh

.rar

$ unrar l foo.rar

[雑資料] BlogTV - iSummit 2007 ほか 勝手インデックス

自分があんまり興味持たなかったとこは省略してます。

iSummit 2007

YouTube - BlogTV SP(July) クリエイティブコモンズ iSummit 1of4
04:57 時事通信社編集委員 湯川鶴章
08:00 Star Wreck
09:15 Star Wreck 製作スタッフの話など
      「無料映画の海賊版って不思議だけれど」「これがロシア版と中国語版」
      というところで会場からどっと笑い。
11:15 Magnatune
      ドミニク・チェンによる解説

YouTube - BlogTV SP(July) クリエイティブコモンズ iSummit 2of4
00:27  リンデンラボCTO Cory Ondrejka(Scond Life)
01:06  ドミニク・チェンによる解説
02:11  Jimmy Wales(Wikipedia)
         途上国の発展を支援できるか - インド
         教育コストの低減
03:19  SJ Klein(OLPC)
         ドミニク・チェンによる解説
         ハードウェアの配布だけに留まらずコミュニティ形成も
08:15  日本人参加者
         Chiaki Hayashi(ロフトワーク)
         Hiroyuki Nakano - eyespot
         ドミニク・チェンによる解説
           CCが普及しきった世界を考えてみる・体験してみる
         Yuko Noguchi



** ホームに戻る

| 次のページ >>
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。