forked from AkkomaGang/akkoma-fe
use supported languages from service
This commit is contained in:
parent
59eb434840
commit
ef50c63dc7
7 changed files with 31 additions and 10 deletions
|
@ -397,6 +397,7 @@ const afterStoreSetup = async ({ store, i18n }) => {
|
|||
store.dispatch('startFetchingAnnouncements')
|
||||
getTOS({ store })
|
||||
getStickers({ store })
|
||||
store.dispatch('getSupportedTranslationlanguages')
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
|
|
|
@ -83,6 +83,9 @@ const GeneralTab = {
|
|||
this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val })
|
||||
}
|
||||
},
|
||||
translationLanguages () {
|
||||
return (this.$store.getters.mergedConfig.supportedTranslationLanguages || []).map(lang => ({ key: lang.code, value: lang.code, label: lang.name }))
|
||||
},
|
||||
translationLanguage: {
|
||||
get: function () { return this.$store.getters.mergedConfig.translationLanguage },
|
||||
set: function (val) {
|
||||
|
|
|
@ -157,14 +157,14 @@
|
|||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<interface-language-switcher
|
||||
:globe-icon="false"
|
||||
:prompt-text="$t('settings.translation_language')"
|
||||
:language="translationLanguage"
|
||||
:set-language="setTranslationLanguage"
|
||||
/>
|
||||
</p>
|
||||
<ChoiceSetting
|
||||
v-if="user && (translationLanguages.length > 0)"
|
||||
id="translationLanguage"
|
||||
path="translationLanguage"
|
||||
:options="translationLanguages"
|
||||
>
|
||||
{{ $t('settings.translation_language') }}
|
||||
</ChoiceSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting
|
||||
|
|
|
@ -252,6 +252,12 @@ const api = {
|
|||
if (!fetcher) return
|
||||
store.commit('removeFetcher', { fetcherName: 'announcements', fetcher })
|
||||
},
|
||||
getSupportedTranslationlanguages (store) {
|
||||
store.state.backendInteractor.getSupportedTranslationlanguages({ store })
|
||||
.then((data) => {
|
||||
store.dispatch('setInstanceOption', { name: 'supportedTranslationLanguages', value: data })
|
||||
})
|
||||
},
|
||||
|
||||
// Pleroma websocket
|
||||
setWsToken (store, token) {
|
||||
|
|
|
@ -115,7 +115,8 @@ export const defaultState = {
|
|||
conversationOtherRepliesButton: undefined, // instance default
|
||||
conversationTreeFadeAncestors: undefined, // instance default
|
||||
maxDepthInThread: undefined, // instance default
|
||||
translationLanguage: undefined // instance default
|
||||
translationLanguage: undefined, // instance default,
|
||||
supportedTranslationLanguages: [] // instance default
|
||||
}
|
||||
|
||||
// caching the instance default properties
|
||||
|
|
|
@ -31,6 +31,7 @@ const MASTODON_LOGIN_URL = '/api/v1/accounts/verify_credentials'
|
|||
const MASTODON_REGISTRATION_URL = '/api/v1/accounts'
|
||||
const MASTODON_USER_FAVORITES_TIMELINE_URL = '/api/v1/favourites'
|
||||
const MASTODON_USER_NOTIFICATIONS_URL = '/api/v1/notifications'
|
||||
const AKKOMA_LANGUAGES_URL = '/api/v1/akkoma/translation/languages'
|
||||
const AKKOMA_TRANSLATE_URL = (id, lang) => `/api/v1/statuses/${id}/translations/${lang}`
|
||||
const MASTODON_DISMISS_NOTIFICATION_URL = id => `/api/v1/notifications/${id}/dismiss`
|
||||
const MASTODON_FAVORITE_URL = id => `/api/v1/statuses/${id}/favourite`
|
||||
|
@ -739,6 +740,10 @@ const unretweet = ({ id, credentials }) => {
|
|||
.then((data) => parseStatus(data))
|
||||
}
|
||||
|
||||
const getSupportedTranslationlanguages = ({ credentials }) => {
|
||||
return promisedRequest({ url: AKKOMA_LANGUAGES_URL, credentials })
|
||||
}
|
||||
|
||||
const translateStatus = ({ id, credentials, language }) => {
|
||||
return promisedRequest({ url: AKKOMA_TRANSLATE_URL(id, language), method: 'GET', credentials })
|
||||
.then((data) => {
|
||||
|
@ -1585,7 +1590,8 @@ const apiService = {
|
|||
editAnnouncement,
|
||||
deleteAnnouncement,
|
||||
adminFetchAnnouncements,
|
||||
translateStatus
|
||||
translateStatus,
|
||||
getSupportedTranslationlanguages
|
||||
}
|
||||
|
||||
export default apiService
|
||||
|
|
|
@ -40,6 +40,10 @@ const backendInteractorService = credentials => ({
|
|||
return ProcessedWS({ url, id: 'User' })
|
||||
},
|
||||
|
||||
getSupportedTranslationlanguages ({ store }) {
|
||||
return apiService.getSupportedTranslationlanguages({ store, credentials })
|
||||
},
|
||||
|
||||
...Object.entries(apiService).reduce((acc, [key, func]) => {
|
||||
return {
|
||||
...acc,
|
||||
|
|
Loading…
Reference in a new issue