fix translating polls and spoilers (#4344)
The docs are wrong https://github.com/mastodon/documentation/pull/1423 🙄
This commit is contained in:
parent
ba495f41a5
commit
b022767ae6
2 changed files with 15 additions and 5 deletions
|
@ -14,12 +14,20 @@ data class MediaTranslation(
|
||||||
*/
|
*/
|
||||||
data class Translation(
|
data class Translation(
|
||||||
val content: String,
|
val content: String,
|
||||||
@SerializedName("spoiler_warning")
|
@SerializedName("spoiler_text")
|
||||||
val spoilerWarning: String?,
|
val spoilerText: String?,
|
||||||
val poll: List<String>?,
|
val poll: TranslatedPoll?,
|
||||||
@SerializedName("media_attachments")
|
@SerializedName("media_attachments")
|
||||||
val mediaAttachments: List<MediaTranslation>,
|
val mediaAttachments: List<MediaTranslation>,
|
||||||
@SerializedName("detected_source_language")
|
@SerializedName("detected_source_language")
|
||||||
val detectedSourceLanguage: String,
|
val detectedSourceLanguage: String,
|
||||||
val provider: String,
|
val provider: String,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
data class TranslatedPoll(
|
||||||
|
val options: List<TranslatedPollOption>
|
||||||
|
)
|
||||||
|
|
||||||
|
data class TranslatedPollOption(
|
||||||
|
val title: String
|
||||||
|
)
|
||||||
|
|
|
@ -67,10 +67,12 @@ sealed class StatusViewData {
|
||||||
actionable.attachments.translated { translation -> map { it.translated(translation) } }
|
actionable.attachments.translated { translation -> map { it.translated(translation) } }
|
||||||
|
|
||||||
val spoilerText: String =
|
val spoilerText: String =
|
||||||
actionable.spoilerText.translated { translation -> translation.spoilerWarning ?: this }
|
actionable.spoilerText.translated { translation -> translation.spoilerText ?: this }
|
||||||
|
|
||||||
val poll = actionable.poll?.translated { translation ->
|
val poll = actionable.poll?.translated { translation ->
|
||||||
val translatedOptionsText = translation.poll ?: return@translated this
|
val translatedOptionsText = translation.poll?.options?.map { option ->
|
||||||
|
option.title
|
||||||
|
} ?: return@translated this
|
||||||
val translatedOptions = options.zip(translatedOptionsText) { option, translatedText ->
|
val translatedOptions = options.zip(translatedOptionsText) { option, translatedText ->
|
||||||
option.copy(title = translatedText)
|
option.copy(title = translatedText)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue