Skip to content

Commit c2b81cf

Browse files
committed
Localize content descriptions
1 parent 81671be commit c2b81cf

File tree

9 files changed

+89
-20
lines changed

9 files changed

+89
-20
lines changed

app/src/main/java/ru/spbu/depnav/ui/map/FloorSwitch.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ import androidx.compose.material3.Text
3838
import androidx.compose.runtime.Composable
3939
import androidx.compose.ui.Alignment
4040
import androidx.compose.ui.Modifier
41+
import androidx.compose.ui.res.stringResource
4142
import androidx.compose.ui.tooling.preview.Preview
43+
import ru.spbu.depnav.R
4244
import ru.spbu.depnav.ui.theme.DepNavTheme
4345

4446
/** Two buttons to switch the current map one floor up or down. */
@@ -60,7 +62,10 @@ fun FloorSwitch(
6062
onClick = { onClick(floor + 1) },
6163
enabled = floor < maxFloor
6264
) {
63-
Icon(Icons.Rounded.KeyboardArrowUp, contentDescription = "Up arrow")
65+
Icon(
66+
Icons.Rounded.KeyboardArrowUp,
67+
contentDescription = stringResource(R.string.label_to_floor_above)
68+
)
6469
}
6570

6671
AnimatedContent(
@@ -82,7 +87,10 @@ fun FloorSwitch(
8287
onClick = { onClick(floor - 1) },
8388
enabled = floor > minFloor
8489
) {
85-
Icon(Icons.Rounded.KeyboardArrowDown, contentDescription = "Down arrow")
90+
Icon(
91+
Icons.Rounded.KeyboardArrowDown,
92+
contentDescription = stringResource(R.string.label_to_floor_below)
93+
)
8694
}
8795
}
8896
}

app/src/main/java/ru/spbu/depnav/ui/map/MarkerView.kt

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import androidx.compose.ui.draw.alpha
2929
import androidx.compose.ui.graphics.Shadow
3030
import androidx.compose.ui.graphics.painter.Painter
3131
import androidx.compose.ui.res.painterResource
32+
import androidx.compose.ui.res.stringResource
3233
import androidx.compose.ui.text.style.TextDecoration
3334
import androidx.compose.ui.tooling.preview.Preview
3435
import androidx.compose.ui.unit.dp
@@ -52,7 +53,7 @@ fun MarkerView(
5253
MarkerIcon(
5354
painter = painterResource(R.drawable.mrk_room),
5455
faded = isClosed,
55-
contentDescription = "Room",
56+
contentDescription = stringResource(R.string.label_room_icon),
5657
modifier = modifier
5758
)
5859
} else {
@@ -65,55 +66,55 @@ fun MarkerView(
6566
MarkerType.ENTRANCE -> MarkerIcon(
6667
painter = painterResource(R.drawable.mrk_entrance),
6768
faded = isClosed,
68-
contentDescription = "Entrance",
69+
contentDescription = stringResource(R.string.label_entrance_icon),
6970
modifier = modifier
7071
)
7172
MarkerType.STAIRS_UP -> MarkerIcon(
7273
painter = painterResource(R.drawable.mrk_stairs_up),
7374
faded = isClosed,
74-
contentDescription = "Stairs up",
75+
contentDescription = stringResource(R.string.label_stairs_up_icon),
7576
modifier = modifier
7677
)
7778
MarkerType.STAIRS_DOWN -> MarkerIcon(
7879
painter = painterResource(R.drawable.mrk_stairs_down),
7980
faded = isClosed,
80-
contentDescription = "Stairs down",
81+
contentDescription = stringResource(R.string.label_stairs_down_icon),
8182
modifier = modifier
8283
)
8384
MarkerType.STAIRS_BOTH -> MarkerIcon(
8485
painter = painterResource(R.drawable.mrk_stairs),
8586
faded = isClosed,
86-
contentDescription = "Stairs up and down",
87+
contentDescription = stringResource(R.string.label_stairs_both_icon),
8788
modifier = modifier
8889
)
8990
MarkerType.ELEVATOR -> MarkerIcon(
9091
painter = painterResource(R.drawable.mrk_elevator),
9192
faded = isClosed,
92-
contentDescription = "Elevator",
93+
contentDescription = stringResource(R.string.label_elevator_icon),
9394
modifier = modifier
9495
)
9596
MarkerType.WC_MAN -> MarkerIcon(
9697
painter = painterResource(R.drawable.mrk_wc_man),
9798
faded = isClosed,
98-
contentDescription = "Men's room",
99+
contentDescription = stringResource(R.string.label_wc_man_icon),
99100
modifier = modifier
100101
)
101102
MarkerType.WC_WOMAN -> MarkerIcon(
102103
painter = painterResource(R.drawable.mrk_wc_woman),
103104
faded = isClosed,
104-
contentDescription = "Women's room",
105+
contentDescription = stringResource(R.string.label_wc_woman_icon),
105106
modifier = modifier
106107
)
107108
MarkerType.WC -> MarkerIcon(
108109
painter = painterResource(R.drawable.mrk_wc),
109110
faded = isClosed,
110-
contentDescription = "Restroom",
111+
contentDescription = stringResource(R.string.label_wc_icon),
111112
modifier = modifier
112113
)
113114
MarkerType.OTHER -> MarkerIcon(
114115
painter = painterResource(R.drawable.mrk_other),
115116
faded = isClosed,
116-
contentDescription = "Other marker",
117+
contentDescription = stringResource(R.string.label_other_icon),
117118
modifier = modifier
118119
)
119120
}

app/src/main/java/ru/spbu/depnav/ui/map/Pin.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import androidx.compose.material3.MaterialTheme
2525
import androidx.compose.runtime.Composable
2626
import androidx.compose.ui.Modifier
2727
import androidx.compose.ui.res.painterResource
28+
import androidx.compose.ui.res.stringResource
2829
import androidx.compose.ui.unit.dp
2930
import ru.spbu.depnav.R
3031

@@ -35,7 +36,7 @@ private val SIZE = 30.dp
3536
fun Pin(modifier: Modifier = Modifier) {
3637
Icon(
3738
painter = painterResource(R.drawable.pin),
38-
contentDescription = "Pin",
39+
contentDescription = stringResource(R.string.label_selected_place),
3940
modifier = Modifier
4041
.size(SIZE)
4142
.offset(y = -SIZE / 2)

app/src/main/java/ru/spbu/depnav/ui/map/TopButton.kt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ import androidx.compose.runtime.CompositionLocalProvider
3939
import androidx.compose.ui.Alignment
4040
import androidx.compose.ui.Modifier
4141
import androidx.compose.ui.platform.LocalViewConfiguration
42+
import androidx.compose.ui.res.stringResource
4243
import androidx.compose.ui.tooling.preview.Preview
44+
import ru.spbu.depnav.R
4345
import ru.spbu.depnav.ui.theme.DepNavTheme
4446

4547
/** Button with a search icon, text, and additional nested buttons. */
@@ -62,7 +64,10 @@ fun TopButton(
6264
modifier = Modifier.size(LocalViewConfiguration.current.minimumTouchTargetSize),
6365
contentAlignment = Alignment.Center
6466
) {
65-
Icon(Icons.Rounded.Search, contentDescription = "Search")
67+
Icon(
68+
Icons.Rounded.Search,
69+
contentDescription = stringResource(R.string.label_search)
70+
)
6671
}
6772

6873
CompositionLocalProvider(
@@ -78,11 +83,17 @@ fun TopButton(
7883
}
7984

8085
IconButton(onClick = onInfoClick) {
81-
Icon(Icons.Rounded.Info, contentDescription = "Open map info")
86+
Icon(
87+
Icons.Rounded.Info,
88+
contentDescription = stringResource(R.string.label_open_map_info)
89+
)
8290
}
8391

8492
IconButton(onClick = onSettingsClick) {
85-
Icon(Icons.Rounded.Settings, contentDescription = "Open settings")
93+
Icon(
94+
Icons.Rounded.Settings,
95+
contentDescription = stringResource(R.string.label_open_settings)
96+
)
8697
}
8798
}
8899
}

app/src/main/java/ru/spbu/depnav/ui/map/ZoomInHint.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ fun ZoomInHint() {
5353
) {
5454
Icon(
5555
painter = painterResource(R.drawable.ic_pinch_zoom_in),
56-
contentDescription = "Pinch to zoom in",
56+
contentDescription = null,
5757
modifier = Modifier.size(
5858
with(LocalDensity.current) {
5959
MaterialTheme.typography.bodySmall.fontSize.toDp() * 2

app/src/main/java/ru/spbu/depnav/ui/search/SearchField.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ import androidx.compose.ui.focus.focusRequester
4848
import androidx.compose.ui.graphics.Color
4949
import androidx.compose.ui.graphics.RectangleShape
5050
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
51+
import androidx.compose.ui.res.stringResource
5152
import androidx.compose.ui.text.input.ImeAction
53+
import ru.spbu.depnav.R
5254

5355
/** Text field with a search icon. */
5456
@Composable
@@ -67,7 +69,10 @@ fun SearchField(
6769
val keyboard = LocalSoftwareKeyboardController.current
6870

6971
IconButton(onClick = onBackClick) {
70-
Icon(imageVector = Icons.Rounded.ArrowBack, contentDescription = "Navigate back")
72+
Icon(
73+
imageVector = Icons.Rounded.ArrowBack,
74+
contentDescription = stringResource(R.string.label_navigate_back)
75+
)
7176
}
7277

7378
TextField(
@@ -92,7 +97,10 @@ fun SearchField(
9297
onClear()
9398
}
9499
) {
95-
Icon(Icons.Rounded.Close, contentDescription = "Clear field")
100+
Icon(
101+
Icons.Rounded.Close,
102+
contentDescription = stringResource(R.string.label_clear_text_field)
103+
)
96104
}
97105
}
98106
},

app/src/main/java/ru/spbu/depnav/ui/search/SearchResults.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ fun SearchResults(
8787
) {
8888
Icon(
8989
painter = painterResource(R.drawable.ic_searched_for),
90-
contentDescription = "Search history",
90+
contentDescription = null,
9191
modifier = Modifier.size(28.dp)
9292
)
9393
}

app/src/main/res/values-ru/strings.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,24 @@
3131

3232
<!-- Etc -->
3333
<string name="zoom_in_to_see_markers">Приблизьте, чтобы увидеть метки</string>
34+
35+
<!-- Content descriptions for accessibility-->
36+
<string name="label_to_floor_above">На этаж выше</string>
37+
<string name="label_to_floor_below">На этаж ниже</string>
38+
<string name="label_room_icon">Помещение</string>
39+
<string name="label_entrance_icon">Вход</string>
40+
<string name="label_stairs_up_icon">Лестница вверх</string>
41+
<string name="label_stairs_down_icon">Лестница вниз</string>
42+
<string name="label_stairs_both_icon">Лестница в оба направления</string>
43+
<string name="label_elevator_icon">Лифт</string>
44+
<string name="label_wc_man_icon">Мужской туалет</string>
45+
<string name="label_wc_woman_icon">Женский туалет</string>
46+
<string name="label_wc_icon">Общий туалет</string>
47+
<string name="label_other_icon">Иное место</string>
48+
<string name="label_selected_place">Выбранное место</string>
49+
<string name="label_search">Искать</string>
50+
<string name="label_open_map_info">Открыть информацию о карте</string>
51+
<string name="label_open_settings">Открыть настройки</string>
52+
<string name="label_navigate_back">Вернуться назад</string>
53+
<string name="label_clear_text_field">Очистить поле ввода</string>
3454
</resources>

app/src/main/res/values/strings.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,24 @@
3535

3636
<!-- Etc -->
3737
<string name="zoom_in_to_see_markers">Zoom in to see markers</string>
38+
39+
<!-- Content descriptions for accessibility-->
40+
<string name="label_to_floor_above">To the floor above</string>
41+
<string name="label_to_floor_below">To the floor below</string>
42+
<string name="label_room_icon">Room</string>
43+
<string name="label_entrance_icon">Entrance</string>
44+
<string name="label_stairs_up_icon">Stairs to the floor above</string>
45+
<string name="label_stairs_down_icon">Stairs to the floor below</string>
46+
<string name="label_stairs_both_icon">Stairs in both directions</string>
47+
<string name="label_elevator_icon">Elevator</string>
48+
<string name="label_wc_man_icon">Men\'s restroom</string>
49+
<string name="label_wc_woman_icon">Women\'s restroom</string>
50+
<string name="label_wc_icon">Unisex restroom</string>
51+
<string name="label_other_icon">Miscellaneous place</string>
52+
<string name="label_selected_place">Selected place</string>
53+
<string name="label_search">Search</string>
54+
<string name="label_open_map_info">Open map info</string>
55+
<string name="label_open_settings">Open settings</string>
56+
<string name="label_navigate_back">Navigate back</string>
57+
<string name="label_clear_text_field">Clear text field</string>
3858
</resources>

0 commit comments

Comments
 (0)