#
# Copyright (C) 2020 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.
#
modules.included=Modules included
providers=Providers
consumers=Consumers
exposed.by.components=Exposed by components
exposed.by.entry.points=Exposed by entry points
parent.components=Parent components
subcomponents=Subcomponents
included.in.components=Included in components
included.in.modules=Included in modules
included.in.subcomponents=Included in subcomponents
assisted.inject=AssistedInject constructors
assisted.factory=AssistedFactory methods
# Common tooltip
dependency.related.files.for=Dependency Related Files for {0}
# Tooltips for single element
navigate.to.included.module={0} includes module {1}
navigate.to.provider={0} consumes {1}
navigate.to.provider.from.component={0} exposes {1}
navigate.to.consumer={0} provides for {1}
navigate.to.component.exposes={0} exposed in {1}
navigate.to.parent.component={1} is parent of {0}
navigate.to.subcomponent={1} is subcomponent of {0}
navigate.to.component.that.include={0} is included in component {1}
navigate.to.subcomponent.that.include={0} is included in subcomponent {1}
navigate.to.module.that.include={0} is included in module {1}
navigate.to.assisted.inject={0} is defined by {1}
navigate.to.assisted.factory={0} is created by {1}
# Gutter icons support
dagger.related.items=Dagger related items
dagger.related.items.popup.title=Go to Related Files
dagger.related.items.none.found=No related files found
