Esta é uma pergunta bastante recorrente para falantes de português que estão aprendendo inglês, e vice-versa.
Primeiramente vamos rever os conceitos do present perfect em inglês. Present perfect: este tempo verbal possui a estrutura "to have" no simple present + past participle do verbo principal; seu uso é encontrado na gramática inglesa para se referir a uma ação no passado que tem relevância com o presente, assim como foi dito na pergunta, o que corresponde ao aspecto "perfeito". Cuidado, porém, com o termo "contínuo". Este tempo verbal, pode sim, indicar continuidade, mas é diferente do "present perfect continuous" (ou "present perfect progressive"). O primeiro exemplo indica bem esse aspecto perfeito: I've worked for 5 years at XYZ Global.
Em português, há duas formas de traduzir o "presente perfeito": por estrutura e por significado. Por estrutura, o Pretérito Perfeito Composto é a substituição ideal. Ou seja, "I have worked" se torna "Eu tenho trabalhado", e o primeiro exemplo é livremente traduzido como "Eu tenho trabalhado por 5 anos na XYZ Global". O significado desta frase em português claramente indica que a ação começou no passado (5 anos atrás) e se estende até o presente. Note, porém, que em inglês, o present perfect continuous traduziria melhor esta ideia: I have been working for 5 years at XYZ Global - e aí sim não há correspondência alguma em português.
Agora quando olhamos para o segundo exemplo, "João has read the book we were talking about", a tradução livre forneceria "João tem lido o livro sobre o qual nós estávamos falando", o que não se encaixa bem dentro da língua portuguesa. Neste caso, deve ser observado que ainda que o "present perfect" funcione bem na língua inglesa, este tempo verbal tem mais uma característica: ele difere do simple past quanto à ausência de uma marcação temporal específica; ou seja, ninguém sabe quando João leu o livro, só sabemos que ele o leu. Em Inglês, duas estruturas válidas seriam: "João has read the book we were talking about" (o exemplo com present perfect) ou "Last week, João read the book we were talking about" (simple past, com marcação temporal).
Dito isso, a tradução deste último exemplo para o português é melhor feita com uso do pretérito perfeito (aqui entra a tradução por significado): João leu o livro sobre o qual nós estávamos falando. Lembre-se que a gramática portuguesa não exige a marcação temporal nesta frase, como faz a gramática inglesa. Assim, "João leu" significa que João leu e ponto; se uma informação temporal é adicionada, muito bem; se não, sem problemas.
Resumindo: o present perfect apresenta a mesma estrutura do pretérito perfeito composto em português, mas por vezes a melhor tradução é feita com o passado simples (para manter o significado original da frase).