github-ko-ext icon indicating copy to clipboard operation
github-ko-ext copied to clipboard

시간 관련 번역 오류

Open hsh2001 opened this issue 4 years ago • 7 comments

스크린샷 2019-10-23 10 45 17

n분 전과 같이 시간을 나타내는 문구들은 일정 주기마다 업데이트되는 것 같습니다. 근데 이 주기를 따라가지 못하고 번역이 되었다가 안되었다가 합니다. 개선이 필요할 것 같아요.

hsh2001 avatar Oct 23 '19 01:10 hsh2001

이런 코드로 수정해보는건 어떨까요..?

function isUpdateNeeded() {
  const timeElems = document.querySelectorAll('[datetime]');
  const regExp = /[a-z]/i;

  for (let i = 0; i < timeElems.length; i++) {
    if (
      regExp.test(timeElems[i].innerHTML)
    ) return true;
  }

  return false;
}

function onTranslationDone() {
  setInterval(() => {
    if (isUpdateNeeded()) 번역하기();
  }, 0);
}

hsh2001 avatar Oct 23 '19 04:10 hsh2001

#5 PR넣었습니다 :)

hsh2001 avatar Oct 23 '19 05:10 hsh2001

이유도 모르고 있었습니다. 보내주신 코드를 바탕으로, 조금 다르게 해결해보고 공유드리겠습니다. 감사합니다.

hatemogi avatar Oct 23 '19 07:10 hatemogi

제가 뭔가 착오가 있었던 모양이에요. 아래 코드쓰면 시간 관련 업데이트가 중단되는게 맞네요.

document.querySelector('relative-time').disconnectedCallback();

hsh2001 avatar Oct 28 '19 13:10 hsh2001

근데 이걸쓰면 자동 업데이트도 멈추니까 직접 계속 업데이트해줘야할 것 같아요.

hsh2001 avatar Oct 28 '19 13:10 hsh2001

Array
.from(document.querySelector('relative-time'))
.forEach(elem => {
  const datetime = new Date(elem.getAttribute('datetime'));
  // do something!
})

hsh2001 avatar Oct 28 '19 13:10 hsh2001

덕분에 계속 흥미롭게 고민 중입니다. MutationObserver를 time-ago와 relative-time 요소에 걸어서, 내용이 바뀌면 다시 번역을 시도하는 방법으로 고민 중입니다.

hatemogi avatar Nov 02 '19 03:11 hatemogi