#
# Copyright (C) 2022 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
screenshot.action.title=Take Screenshot
screenshot.action.description=Obtain a screenshot from the device
screenshot.task.step.obtain=Obtaining screenshot from device\u2026
screenshot.error.generic=Unexpected error while obtaining screenshot: {0}
screenshot.error.save=Unable to save screenshot
screenshot.notification.title=Screen capture
screenshot.notification.copied.to.clipboard=Image copied to clipboard
screenshot.decoration.rectangular=Rectangular
screenshot.decoration.display.shape=Display Shape
screenshot.decoration.play-compatible=Play Store Compatible
screenshot.dialog.title.primary.display=Screenshot of {0}
screenshot.dialog.title.secondary.display=Screenshot of {0} Display {1}
screenshot.dialog.file.save.title=Save as PNG
screenshot.dialog.ok.button.text=Save
screenshot.dialog.recapture.button.text=Recapture
screenshot.dialog.rotate.left.button.text=Rotate Left
screenshot.dialog.rotate.right.button.text=Rotate Right
screenshot.dialog.copy.button.text=Copy to Clipboard
screenshot.options.resolution=Resolution (% of native):
screenshot.dialog.error=Unexpected error while saving screenshot: {0}
screenshot.framing.option.name=Show Device Frame

screenrecord.action.title=Record Screen
screenrecord.action.description=Record a video of the device display
screenrecord.action.stopping=Stopping...
screenrecord.action.save.as=Save As
screenrecord.action.open=Open
screenrecord.action.open.file=Open File
screenrecord.action.view.recording=Video recording saved as {0}
screenrecord.error.popup.title=Screen Recorder Error
screenrecord.error=Failed to record the screen
screenrecord.error.with.cause=Failed to record the screen - {0}
screenrecord.error.save=Failed to save screen recording to {0}
screenrecord.error.exception=Failed to record the screen\n\n{0}
screenrecord.error.cancelling=Error while cancelling recording
screenrecord.error.disconnected=Lost connection to the device
screenrecord.options.title=Screen Recorder Options
screenrecord.options.ok.button.text=Start Recording
screenrecord.options.info=The length of the recording can be up to {0} minutes.
screenrecord.options.bit.rate=Bit rate (Mbps):
screenrecord.options.resolution=Resolution (% of native):
screenrecord.options.show.taps=Show taps
screenrecord.options.show.taps.tooltip=Show visual feedback for taps
screenrecord.options.use.emulator.recording=Use emulator recording (WebM)
screenrecord.options.use.emulator.recording.tooltip=Record using the emulator recording API. If unchecked, will use adb recording instead.
screenrecord.options.save.directory=Saving to:
screenrecord.dialog.title=Record Screen - {0}
screenrecord.dialog.progress=Recording: {0}
screenrecord.dialog.stop.recording=Stop Recording

configurable.group.screenshot.screenrecording.text=Screenshots \\& Screen Recordings
configurable.group.screenshot.screenrecording.description=<html><body>Configure screenshots and screen recordings for Android devices.
device.screenshot.text=Screenshots
device.screenrecording.text=Screen Recordings

configure.save.link.text=Configure
configure.screenshot.dialog.save.location=Save Location:
configure.screenshot.dialog.filename=Filename:
configure.screenshot.dialog.preview=Preview:
configure.screenshot.dialog.placeholders.description=You can use the following placeholders in the filename, which will be replaced with the corresponding values when the file is saved:
configure.screenshot.dialog.year.4.digits=year (4 digits)
configure.screenshot.dialog.year.2.digits=year (2 digits)
configure.screenshot.dialog.month=month (01-12)
configure.screenshot.dialog.day=day (01-31)
configure.screenshot.dialog.hour=hour (00-23)
configure.screenshot.dialog.minute=minute (00-59)
configure.screenshot.dialog.second=second (00-59)
configure.screenshot.dialog.millisecond=millisecond (000-999)
configure.screenshot.dialog.number.line1=sequential number, padded
configure.screenshot.dialog.number.line2=by additional '#' characters
configure.screenshot.dialog.project.name=project name
configure.screenshot.dialog.directory.separator=to save to a subfolder
configure.screenshot.dialog.error.invalid.directory=Invalid directory - {0}
configure.screenshot.dialog.error.invalid.filename=Invalid filename - {0}
configure.screenshot.dialog.error.empty.filename=No filename provided
configure.screenshot.dialog.error.leading.separator=Filename cannot start with directory separator
configure.screenshot.dialog.error.trailing.separator=Filename cannot end with directory separator
configure.screenshot.dialog.error.invalid.filename.generic=Invalid filename

post.save.action.do.nothing=Do nothing
post.save.action.open=Open
post.save.action.show.in=Show in {0}
