2011-09-14 6 views
0

나는 매우 큰 여러 가지 JavaScript 파일을 가지고 있으며 특정 문자열 만 추출해야합니다. 입력은 다음과 같이 수백 줄이됩니다.코드에서 특정 문자열 만 추출

function foo("ignore this string"){ 
var n = "copy this"; 
} 
function bar("copy this string"){ 
var i = "ignore this string"; 
} 
var globalX ="copy if over a certain length"; 
var globalY ="copy if within 2 lines of 'globalX'"; 

출력은 간단한 문자열 목록입니다. 규칙을 작성하는 것은 어렵지 않지만 JavaScript는 100 페이지 분량의 코드를 읽고 파싱하기위한 문자열처럼 취급 할 수 있습니까? 그렇지 않다면 어떤 도구를 사용해야합니까? 어떤 제안이라도 환영합니다!

+0

귀하의 질문에 전혀 문제가 없습니다. –

+0

죄송합니다. 그리고 빠른 답장을 보내 주셔서 감사합니다. 간단한 자바 스크립트 기반 어드벤처 게임 엔진을 만들고 있습니다. 게임을 다른 언어로도 사용할 수 있기를 바랍니다. 내가 찾을 수있는 모든 번역 도구는 상당히 정적 인 웹 페이지로 가정합니다. 따라서 원시 코드를 가져 와서 번역가에게 줄 수있는 문자열 목록을 만들 계획입니다. 나는 정교한 찾기 및 매크로로 대체 할 수있는 도구를 찾고 싶지만 어디서부터 시작해야할지 모르겠습니다. –

답변

0

위의 의견에 따르면 필요한 것은 JavaScript 현지화 메커니즘입니다. 응용 프로그램을 빌드하고 패키지하는 방법에 따라 몇 가지 옵션이 있습니다.

1)() 요청에 그의 정보를 검색하여 클라이언트에 따라 올바른 각 언어에 대한 개별 JS 파일을 생성하고로드 :

여기 메커니즘의 일부이다.

많은 중복과 오버 헤드가 있습니다. 내가 코드 당신이 다시 localeStrings['some message']['en/US']를 호출 요청 헤더에서 언어를 검색하여 실제 메시지를 검색보다

var localeStrings = 
{ 
    'some message': 
    { 
     'en/US':'Some text', 
     'ru/RU':'Какой-то текст' 
    } 
} 

과 :

2) 약간 개선 된 방법은 객체에 의해 각각의 문자열을 표현하는 것입니다 내가 'en/US'을 사용한 것과 똑같이 사용합니다.

빈약 한 - 많은 양의 불필요한 데이터가 클라이언트에로드되기 때문에.

3) 요청시 동적 대체가 가능합니다.

일반적으로 서버 측 파일의 데이터로 토큰을 대체하는 서버 측 구성 요소 (예 : 서블릿) (예 :`## {some token})를 가지고 있습니다.)가 포함되어 있습니다.

사용자 응답이 약간 지연 될 수 있지만 이는 단지 가정 일 뿐으로 무시할 수 있습니다.

독약을 고르십시오.

나는 그곳에 확신을 갖고 있으며, 답을보기 위해 그곳을보고 싶어합니다. 나는 밖에서 사용할 수있는 것을 찾을 수 없었다.

편집 : related conversation을 가리키는 것을 잊었습니다.

+0

감사합니다. 바꾸는 부분은 문제가 아닙니다. 옵션 2와 같은 것을 사용합니다. 문제는 초기 코드 (문자열 포함)가 영어로 작성된다는 것입니다. 옵션 2에 도달하기 전에 코드를 읽고 문자열 'some message'(내부 변수)를 무시하고 문자열 'some text'를 복사해야합니다. 그런 다음 결과 파일이 친숙한 프랑스 사람에게 보내집니다. –

+0

요점을 놓치고 있습니다. 또는 나는 있을지도 모른다. 코드에서 문자열을 외부화합니다 (예 : 옵션 2 사용). 자동 파싱을 ​​허용 할 규칙이 없다면 수동으로해야한다고 생각합니다. 당신은 그런 일이있는 경우 - 당신이 찾을 수있는 어떤 구문 분석/정규식 매칭 엔진을 통해 한 번만 프로세스를 실행해야 할 몇 가지 message'''같은 뭔가 파서 다시 키 (발견 모든 문자열을 대체 옵션 2)에서'localeStrings' 객체를 별도의 JS 파일에 넣고 친한 프랑스 인에게 넘겨 줘라. – ZenMaster

+0

예, 구문 분석/정규식 검색 엔진이 필요합니다. 한 번 매크로를 작성한 다음 나중에 만들 때마다 사용할 수있는 무언가가 필요합니다. 이전에 Adventure Game Studio를 사용했으며 번역자가 필요로하는 모든 문자열을 추출하기위한 원 클릭 버튼이 포함되었습니다. 비슷한 도구를 만들고 싶지만 내 규칙을 추가하십시오. –