Currently i am using this approach for linking to a entry(single page) of a structure, for example a cta button on the homepage which links to the contact page.
{% cache %}
{% set single = craft.entries.id('14').first() %}
{% if single %}
<a class="button button--full t-spacing" href="{{ single.url }}">{{ "Neem contact op" | translate }}</a>
{% endif %}
{% endcache %}
Or for example a "read more" button next to some results of some structure without a index. Because thats set in the structure "pages" as a entry type.
But i feel like this is somewhat hacky.. Of course you can link to a page like so:
{{ url('contact') }}"
or
href="{{ "contact"|translate }}
But url() doesn't translate and what if the slug is changed by a user of the CP. So what is the usual way to get around this, are there any best practises? So far i can only think of linking all the individual buttons/links to entry fields in the CP, which the user has to fill in.